在 useSelector 变量可用后反应调度函数
react dispatch function after useSelector variable available
我想在调用 useSelector 函数后调度一个函数。
这是我的代码
const profile = useSelector(
({ x}) => x.profile,
);
useEffect(() => {
dispatch(fetchX(y, setXStatus)); // this is getting called before profile is available
}, [dispatch,y]);
问题出在 dispatch(fetchX(y, setXStatus));执行配置文件变量不正确set.Is设置配置文件后有办法运行fetchX。
如果“调用 useSelector 函数后”是指“每当 profile
发生变化时”,则需要将 profile
添加到依赖项数组。如果 profile
可以是 null
(或类似的),并且在执行 dispatch
之前您需要一个配置文件,您将需要一个守卫。
大致如下:
const profile = useSelector(
({ x}) => x.profile,
);
useEffect(() => {
if (profile) { // <−−−−−− Guard
dispatch(fetchX(y, setXStatus));
}
}, [dispatch, y, profile]);
// ^^^^^^^−−−−− Dependency
注意,不过,此效果回调将被调用 每次 dispatch
,y
,或 profile
变化。 dispatch
可能永远不会改变,但我不知道 y
或 profile
。
我想在调用 useSelector 函数后调度一个函数。
这是我的代码
const profile = useSelector(
({ x}) => x.profile,
);
useEffect(() => {
dispatch(fetchX(y, setXStatus)); // this is getting called before profile is available
}, [dispatch,y]);
问题出在 dispatch(fetchX(y, setXStatus));执行配置文件变量不正确set.Is设置配置文件后有办法运行fetchX。
如果“调用 useSelector 函数后”是指“每当 profile
发生变化时”,则需要将 profile
添加到依赖项数组。如果 profile
可以是 null
(或类似的),并且在执行 dispatch
之前您需要一个配置文件,您将需要一个守卫。
大致如下:
const profile = useSelector(
({ x}) => x.profile,
);
useEffect(() => {
if (profile) { // <−−−−−− Guard
dispatch(fetchX(y, setXStatus));
}
}, [dispatch, y, profile]);
// ^^^^^^^−−−−− Dependency
注意,不过,此效果回调将被调用 每次 dispatch
,y
,或 profile
变化。 dispatch
可能永远不会改变,但我不知道 y
或 profile
。