useState多个变量太长,合理优化

发布时间 2023-05-22 15:20:13作者: 红苹果学园
解决办法:
使用 useImmer 替代 useState,immer.js 这个库,是基于 proxy 拦截 getter 和 setter 的能力,让我们可以很方便的通过修改对象本身,创建新的对象
用对象包含多个属性,对对象的属性进行修改,然后用immer去处理。
const [state,setState] = useImmer({
   a: 1,
   b: {
     c: [1,2]
     d: 2
   },
});

setState(prev => {
  prev.b.c.push(3);
}))