qwe*_*ezz 4 reactjs redux-toolkit rtk-query
我正在尝试从 createAsuncThunks 迁移到 RTK-Query。在页面加载时,我检查存储中是否没有用户,然后从后端获取用户和其他数据。
此代码与 createAsuncThunks 配合良好,但与 RTK-Query 配合使用效果如何?
const InitApp = () => {
const dispatch = useAppDispatch();
const user = useAppSelector((state) => state.user);
const ignore = useRef(false);
useEffect(() => {
if (!user && !ignore.current) {
Promise.all([
dispatch(getUser()),
dispatch(getRawMedias()),
dispatch(getFaces()),
dispatch(getProjects()),
]);
}
return () => {
ignore.current = true;
};
}, [dispatch, user]);
if (!user) {
return <Loader areaLoader />;
}
return <Outlet />;
};
Run Code Online (Sandbox Code Playgroud)
我认为这种方法是错误的,但目前尚不清楚如何正确地实现它:
const {data} = useGetUserQuery()
useEffect(() => {
if (!data) {
// can't call other hooks here
}
}, [data])
Run Code Online (Sandbox Code Playgroud)
您好,您可以传递skip
参数,并将其与 initalState 结合起来,如下所示:
const user = useAppSelector((state) => state.user);
const { data = user } = useUserQuery(undefined, { skip: Boolean(user) });
Run Code Online (Sandbox Code Playgroud)
现在只有在没有用户的情况下才会触发,如果有用户,数据将等于用户
归档时间: |
|
查看次数: |
2612 次 |
最近记录: |