为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2022-09-16 22:01:49
我试图使我的代码干净。我有两个选择。第一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 存在,则将更新本地状态值,否则将设置为空。希望这能给你一些视角,如果你仍然感到困惑,请告诉我。


查看完整回答
反对 回复 2022-09-16
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号