【发布时间】:2020-02-21 15:59:33
【问题描述】:
我为这个问题准备了小demo:
所以我使用 react-router-dom 创建单页应用程序,并在两个页面(组件 Page1 和 Page2)之间创建了标准导航。
问题是每次我在页面之间切换时都会调用 useEffect 钩子(以空数组作为第二个参数)(在演示中,您可以在控制台中看到它)。
无论用户是否会在页面之间切换,我只想为每个组件获取一次数据并在之后重用该数据。是否有可能在不检查 useEffect 函数中的某些条件的情况下做到这一点?这让我有点困惑,因为 useEffect [] 应该只为组件运行一次,而事实并非如此。
【问题讨论】:
-
@Rajesh 不,那是错误的。一个空数组意味着它只会在组件挂载时运行,仅此而已。如果组件被卸载,它将被再次调用,然后再次安装。
标签: javascript reactjs react-router react-hooks