typescript 如何在useState数组中跳过一个设置值?[已关闭]

1l5u6lss  于 2022-11-18  发布在  TypeScript
关注(0)|答案(1)|浏览(136)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

20小时前就关门了。
Improve this question
我不需要更改第一个值(我不能使用setter,它会触发无限渲染)

const [x, setX] = useState([0,0]);
setX([,10])
ef1yzkbh

ef1yzkbh1#

如果你不考虑这些类型是通过引用而不是值来传递的,那么用数组或对象作为状态可能会导致问题。这就是为什么仅仅输入setX([something])就会触发一个无限的re render循环。因为对于react来说,每一次render都是把状态设置成新的东西(因为react使用==来检查状态是否真的改变了)。
通常解决此类问题的方法是在useEffect()中调用setX()(带有依赖数组),或者有条件地调用它(例如在eventlistener上)
但由于我不知道你实际上想达到什么目的,我只能给予一个笼统的回答

相关问题