作者:Karson2012 | 来源:互联网 | 2023-08-20 19:12
问题是这样:
父页面的列表上的(子组件)按钮,当父页面上的 数据 改变时。按钮的disabled的值进行相应的改变。
没有什么操作的话,你会发现,父页面数据刷新了,但是按钮(子组件)里面的数据,并没有改变。
解决方案:
使用 componentWillReceiveProps 生命周期函数
你想让父页面的哪个值改变而 改变 子组件 的值。在这里使用 nextProps 进行一个数据的实时对应
componentWillReceiveProps(nextProps) {let flg = (nextProps.data.item.patrolStatus != 0 && nextProps.data.item.patrolStatus != 1);//初始化状态this.state.disabled = flg;}
我这里做的是父页面的 item传过来的 patrolStatus 的值 如果为 0,1 进行改变 disabled 的 值。
componentWillReceiveProps :
componentWillReceiveProps :在组件接收到一个新的 prop (更新后)时被调用。这个方法在初始化render时不会被调用。
就是说。父页面数据改变的时候,会调用这个函数。在这里面进行数据的对应。