【发布时间】:2020-03-03 11:50:18
【问题描述】:
我有 3 个 useEffect 函数,每个函数都调用一个 updateData 函数。 (除此之外,每个人都在做其他事情,所以我无法将它们全部组合起来。)因此,在页面加载时,updateData 被调用 3 次。
以下是相关代码:
useEffect(() => {
...
updateData();
}, [changePage]);
useEffect(() => {
...
updateData();
}, [search]);
useEffect(() => {
...
updateData();
}, [sortBy]);
如何确保updateData 在页面加载时只被调用一次?
【问题讨论】:
-
sortBy或changePage或search更改时执行 updateData 是否不正确? -
为什么三个依赖做一个useEffect不够? updateData 是否会更改三个 deps 值中的任何一个?
-
每个效果运行一次...下次观察到的道具有任何变化时运行。
-
@Jai 我怎样才能让它最初运行一次,而不是对页面加载的每个效果
-
我认为你必须用一些 if 语句来“保护”你的
updateData()。
标签: reactjs use-effect react-lifecycle