使用全局变量与组件DidMount中的道具设置状态

我试图使我的代码干净。我有两个选择。


第一


state = {

 onChange: this.props.onChange,

}

第二


state = {

 onChange: null,

}


componentDidMount(){

 this.setState({

   onChange: this.props.onChange,

});

}

我想在我的代码中使用1st,因为它看起来更整洁。但我不确定作品是否像2nd?请指教。


鸿蒙传说
浏览 146回答 1
1回答

蝴蝶不菲

理想情况下,您应该避免使用props值初始化状态,这是一种反模式。在此处阅读更多相关信息此外,如果 props 对象中已存在某些值,则应尽可能尝试直接在组件中使用该值,并避免在父组件和子组件中重复相同的值。但是,如果由于某种原因,您还必须在 Child 组件中具有相同的数据,那么在这种情况下,请参阅下面的代码片段。state = { onChange: null}componentDidMount() { this.changeHandler();}//abstracted helper function, could be reused from other life cycle methods if need bechangeHandler = () => { this.setState({   onChange: this.props.onChange || null })}如果此 .props.onChange 存在,则将更新本地状态值,否则将设置为空。希望这能给你一些视角,如果你仍然感到困惑,请告诉我。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript