小编E M*_*ill的帖子

useState() 未在 useEffect() 挂钩内更新

我在更新 useEffect() 内部的 useState() 时遇到问题。我想我可能会遇到无限循环,并且无论我传入的布尔值如何,useState 都不会更新。它总是显示 false。

export const useAlert = () => {
  const action = useSelector(state => state.edit.action);

  const dispatch = useDispatch();

  const booleanA = true;

  const booleanB = false;

  const [isOverMax, setIsOverMax] = useState(false);
  const reset = () => {
    dispatch(resetEditAction());
  };

  useEffect(() => {
    setIsOverMax(booleanA || booleanB);
  }, isOverMax);

  return [isOverMax, reset];
};
Run Code Online (Sandbox Code Playgroud)

对于更多上下文,booleanAbooleanB是用其他代码动态生成的,但即使它们像上面那样被硬编码,也isOverMax只能是false. 即使两个布尔值都被硬编码为 true,我也永远无法获得真正的值。

state reactjs react-redux react-hooks

5
推荐指数
1
解决办法
245
查看次数

标签 统计

react-hooks ×1

react-redux ×1

reactjs ×1

state ×1