我实现了在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吗?
当前,依赖项设置为[]
,但是如果完全删除了[]
,应用程序将停止。
哪种解决方案对我有帮助?
无论我看多少,我都找不到这样的问题。
我解决了这个问题,并在下面写下了答案。
答案 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.
而且工作正常。
很抱歉提出这样一个愚蠢的问题...
谢谢大家的回答!