如何解决使用状态替换完整对象
我有以下代码
const [data,setData] = useState(obj)
现在我将此数据传递给某个组件
<comp data={data} />
现在当我在下面做
setData(newOBj);
然后 comp 不再渲染
但是当我执行诸如更改任何属性之类的操作时,它会起作用
setData(prev=> ({
...prev,pOPageIndex: null,cCPageIndex: null
}));
我们如何替换完整的对象并使组件重新渲染
谢谢
解决方法
听起来像你改变了状态,为了让组件重新渲染,React 用之前的状态/道具制作了一个 shallow comparison,所以有一个新的引用会重新渲染你的组件:
setData({...newOBj})
- 查看来自 React 文档的 Power of not mutating Data 中的最后一个示例
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。