Next.js-访问相同的路由时,useEffect不会触发

时间:2020-11-02 12:39:39

标签: javascript reactjs next.js

我实现了在Next.js v10中使用useEffect访问屏幕时运行的API。

代码简写如下。

...
const fetchAPI = async () => {
  try {
    await axios.get({ .... })
  } catch (e) {
    console.error(e)
  }
}

React.useEffect(() => {
  fetchAPI()
}, [])
...

当我第一次访问时,useEffect的API正常运行。

但是,如果我转到另一个屏幕然后再次访问该屏幕,则useEffect不起作用。

其他屏幕上的useEffect相同。

每次访问屏幕都可以运行useEffect吗?

当前,依赖项设置为[],但是如果完全删除了[],应用程序将停止。

哪种解决方案对我有帮助?

无论我看多少,我都找不到这样的问题。


我解决了这个问题,并在下面写下了答案。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,并在下面写下了答案。

问题发生在cache

如果数据保留在高速缓存中,并且剩余数据按原样使用,则先前实现的方法不会请求新服务器。

因此,即使您重新访问该页面,也会显示相同的数据,并且“网络”标签中没有任何更改。

So I realized that and changed it to make a network request every time a page is accessed, regardless of the cache.

而且工作正常。

很抱歉提出这样一个愚蠢的问题...

谢谢大家的回答!