我有一个 React 函数组件(一个路由组件),它在卸载时应该做一些事情(即用户单击浏览器的后退按钮)并包含以下相关行:
// ...
const params = useParams<ISomeInterfaceHere>();
// ...
// I verified that `data` below actually loads but it does not last until the component unmounts.
const { data, isLoading, isError } = useGetSomethingQuery(params.x, {
refetchOnMountOrArgChange: true,
});
// ...
useEffect(() => {
return () => {
// current state:
//
// isLoading === true
// isError === false
// data === undefined
};
}, []);
// ...
它与包装中的useParams
钩子有关吗?react-router
这是 RTKQ 中的错误,或者,如果不是,定义的行为是什么?而且,最重要的是,如何data
在组件卸载之前获得最后定义的值?
没有错误消息。
更新 1
我用:
"react": "^16.14.0",
"react-router": "^5.1.2",
"react-router-dom": "^5.1.2",
"@reduxjs/toolkit": "^1.6.0",
更新 2
我敢肯定,params
没有得到更新,甚至没有params.x
。我也升级到了@reduxjs/toolkit
v1.6.1
,我也有同样的问题。
更新 3
带有孤立问题的代码沙箱在这里。在我看来,这是 RTKQ 中的一个错误。
更新 4
我在这里打开了一个 GH 错误报告。