React hooks useState 问题

新手上路,请多包涵

例如我有一个 useState

let [data,setData]=useState({a:1,b:2});

let setDataFun=(key,value)=>{
    setData(data[key]=value);  // 我这种写法可能不对,但又不知道怎么写
}

例如我 更新了data键为a的值 会导致b关联的dom重新渲染,如何避免这种问题呢?应该怎么写才对?初学React者,请懂的人帮忙指点一下,谢谢。

阅读 2.8k
5 个回答

setData({...data,[key]:value})
React更新方式,不可变模式

首先,setData 应该传递一个具有{a: number,b: number}的值,一个全新的对象替代旧值,而不是 data[key]=value
最后,想修改 a 的值,不想 b 关联的 dom 重新渲染,请拆分为两个 state

let setDataFun = (key, value) => {
    setData(prevData => ({ ...prevData, [key]: value }));
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题