在 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

注意,不过,此效果回调将被调用 每次 dispatchy,或 profile 变化。 dispatch 可能永远不会改变,但我不知道 yprofile