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

无法正确更新父对象状态

无法正确更新父对象状态

大话西游666 2022-05-14 15:15:54
我有多个子组件,需要在这些兄弟姐妹之间进行通信。我目前正在尝试什么:Parent 具有对象状态并将 setMessageItem 作为道具传递给所有孩子:const [messageItem, setMessageItem] = useState({})孩子们:useEffect(() => {    if(condition) {        props.setMessageItem(prevState => ({...prevState, messageData}))    ..}    }}[])然而,只有一个孩子的数据才能达到这个对象状态。当两个或多个孩子同时试图改变父母的状态时,有什么办法可以让它工作吗?所以最终结果是 messageData 将同时包含来自多个孩子的数据。
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

当组件被实例化时, useEffect() 只会运行一次。如果你想这样使用它,你会这样做:


useEffect(() => {

  props.setMessageItem(prevState => ({ ...prevState, messageData }));

}, [condition]);

然后它会在每次条件变化时触发。


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信