我在更新 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)
对于更多上下文,booleanA和booleanB是用其他代码动态生成的,但即使它们像上面那样被硬编码,也isOverMax只能是false. 即使两个布尔值都被硬编码为 true,我也永远无法获得真正的值。