javascript - 在空数组更改中触发 React UseEffect 函数
问题描述
userEffect
如果 prop 值从一个空数组更改为另一个空数组,我正在处理的反应应用程序会触发该函数。
我从页面获取查询参数并将它们传递到一个组件中,如果任何查询参数数组发生更改,该组件将重新呈现。但问题是,useEffect
即使查询参数数组从 更改为 ,该函数也会触发并重新渲染[]
组件[]
。
我知道[] !== []
,也许这就是导致问题的原因。但是有没有一种方法可以让应用程序一开始就阻止触发 useEffect 函数?
这是一个代码沙盒演示: https ://codesandbox.io/s/vibrant-greider-qgjgs ?file=/src/App.js
解决方案
您正在为测试分配新的引用,因此它正在触发更新。
您应该重新分配相同的数组并对其进行操作。
const handleClick = () => {
const arr = test
setTest(arr);
};
推荐阅读
- sql - 在 Oracle DB 中过滤联接
- java - 如何使用 Single Live Event 打开包含 Room 数据的对话框片段?
- python - 如何将不和谐频道与python链接
- azure-sql-database - 从 Azure SQL 弹性作业步骤中发送电子邮件
- c++ - WinHttpAddRequestHeaders:在标头中发送证书时为87 - C++
- ethereum - 更新实时智能合约
- javascript - D3 json() 函数适用于本地文件,但不适用于将本地 var 设置为 json
- python - Python程序不写入文件
- google-cloud-platform - gsutil / gcloud 按限制和分页存储列表文件
- linux - 我可以在 PyTorch 中暂时禁用 CUDA 吗?