const [showModal, setShowModal] = useState(false);
useEffect(()=>{
if (!isMobile)
if (collectShow)
if (closeModal)
if (controllModal) {
setShowModal (true)
}else{
setShowModal (false)
}
},[isMobile, collectShow, closeModal, controllModal])
console.log (showModal)
我想像这样不断改变showModal的值, 但一旦改变,即使条件改变,它也保持不变。 我是新来的,所以我想我用错了 useEffect,请帮忙
答案 0 :(得分:1)
我认为您不想要嵌套的 if。现在你的代码基本上意味着
if (!isMobile && collectShow && closeModal)
setShowmodal(controllModal)
所以它只有在第一个条件为真时才会改变
虽然你可能想要
setShowmodal(!isMobile && collectShow && closeModal && controllModal)
至少这是我的假设。如果它不是你想要的,我只能建议滥用 console.log 来看看你要去哪里