【发布时间】:2019-07-13 16:47:31
【问题描述】:
我听说将箭头函数作为道具传递并不理想,因为它每次都会创建一个新函数,这会导致性能问题。但是,我不完全确定如何完全摆脱它们,如下例所示:
class Home extends Component {
onCardPress = (message) =>{
alert(message)
}
render(){
return(
<View>
<Card
onCardPress={this.onCardPress}
message="Hello world!"
/>
</View>
)
}
}
class Card extends Component {
render(){
const { onCardPress , message } = this.props;
return(
<TouchableOpacity
activeOpacity={0.8}
onPress={()=>{onCardPress(message)}}
/>
)
}
}
我尝试将Card 中的onPress 更改为onPress={onCardPress(message)},但我知道这不起作用,因为我正在调用函数而不是将函数对象传递给TouchableOpacity 的onPress。删除TouchableOpacity 中的箭头函数同时仍能够从父组件Home 传递message 参数的“正确”方式或最佳实践是什么?
【问题讨论】:
标签: reactjs react-native arrow-functions react-props