useState 假如initData的值是tree状
来源:3-4 useState语法讲解(字符串、数字、数组、对象动态更新)

核桃丷
2023-05-25
假如树形state想修改某一节点处的值岂不是很麻烦?
写回答
1回答
-
假如是多层嵌套对象,比如:
const [user, setUser] = useState({ email: '', password: '', settings: { subscribe: false }, });
我们需要对嵌套的对象做浅拷贝:
setUser({
...user,
settings: { .
..user.settings,
subscribe: true
},
});
或者,你直接使用序列化转成字符串,再变回json,因为setState的时候,不能用以前的对象,以前的对象会被认为是同一个引用地址,对象没有发生变化,需要更新的时候给一个新的对象才会被认为有更新。
10
相似问题