我试图使我的代码干净。我有两个选择。第一state = { onChange: this.props.onChange,}第二state = { onChange: null,}componentDidMount(){ this.setState({ onChange: this.props.onChange,});}我想在我的代码中使用1st,因为它看起来更整洁。但我不确定作品是否像2nd?请指教。
1 回答

蝴蝶不菲
TA贡献1810条经验 获得超4个赞
理想情况下,您应该避免使用props值初始化状态,这是一种反模式。在此处阅读更多相关信息
此外,如果 props 对象中已存在某些值,则应尽可能尝试直接在组件中使用该值,并避免在父组件和子组件中重复相同的值。
但是,如果由于某种原因,您还必须在 Child 组件中具有相同的数据,那么在这种情况下,请参阅下面的代码片段。
state = {
onChange: null
}
componentDidMount() {
this.changeHandler();
}
//abstracted helper function, could be reused from other life cycle methods if need be
changeHandler = () => {
this.setState({
onChange: this.props.onChange || null
})
}
如果此 .props.onChange 存在,则将更新本地状态值,否则将设置为空。希望这能给你一些视角,如果你仍然感到困惑,请告诉我。
添加回答
举报
0/150
提交
取消