gpt4 book ai didi

javascript - 如何使用 React Hook useEffect 检查状态默认 bool 值 false 是否更改为 true

转载 作者:行者123 更新时间:2023-12-01 15:28:13 26 4
gpt4 key购买 nike

目前,我完全被 所困扰 react 钩子(Hook) .

当状态变为 true它应该显示 console.log('currentBoolean') ,
但这并没有发生。

不确定我是否应该使用 usePrevious为此,因为在比较数字时它可以很好地与此代码配合使用,但是当我尝试检查默认 bool 值是否正在更改时,它似乎不起作用。

const MemoryPageTwo = ({ disabledAllCards }) => {
const boolean = useRef(null);
const [ isCurrentBoolean , setLevel ] = useState(false);

useEffect(() => {
console.log(isCurrentBoolean);
if(isCurrentBoolean) {
console.log('currentBoolean');
}

}, [isCurrentBoolean]);

useEffect(() => {
const storedBoolean = disabledAllCards ;

boolean.current = storedBoolean;
return () => storedBoolean
}, []);

//
useEffect(() => {
setLevel(boolean.current !== disabledAllCards);
},[boolean.current, disabledAllCards]);
}

const mapStateToProps = state => {
console.log(state.app.disableCards); // default is false, but this will be true if the memorycard matches
return {
disabledAllCards: state.app.disableCards || [],
}
}

export default connect(mapStateToProps, null)(MemoryPageTwo);

最佳答案

你的 boolean.current 值永远不会改变,因为它的 useEffect 回调表现为构造函数,它只会运行一次,因为我们里面有空的依赖项。

关于javascript - 如何使用 React Hook useEffect 检查状态默认 bool 值 false 是否更改为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57317696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com