UseState更新多层数据无效

来源:3-6 在函数组件使用 state - useState Hook

慕婉清4122940

2021-07-01

UseState只能监听浅层数据,如果我使用了多层数据,则UseState就不更新数据了怎么办。

写回答

1回答

张轩

2021-07-01

同学你好 针对多层数据 一定要保证不要 mutable 的修改数据,而是要返回数据新的拷贝。

比如

const styling = {
    'a': 1,
    'e': 2,
    'b': {
        'c': 2,
        'd': 3
    },
   
}
const [style, setStyle] = useState(styling);

// 现在我要修改 c 的值为 4,那么应该写做:
setStyle({
    ...style,
    b: { ...style.b, 'c':4 }
})

再多层同理。
这样假如是很深层的写起来自然比较麻烦。如果真的遇到很多层的问题,
可以学习使用一下 https://github.com/immutable-js/immutable-js
0
1
慕婉清4122940
好的 谢谢张老师
2021-07-01
共1条回复

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2136 学习 · 959 问题

查看课程