并不真正理解为什么这个代码部分不能正常工作。
这个useEffect
block 在每个 scrollY 位置重新渲染。另外,我看到这个代码部分:console.log(wrapperRef.current.style.opacity);
应该调用 if 和 else if 语句,但它没有。
这是代码:
useEffect(() => {
console.log(wrapperRef.current.style.opacity);
if (wrapperRef.current.style.opacity === 0) {
setIsHidden(true);
console.log("true");
} else if (wrapperRef.current.style.opacity === 1) {
setIsHidden(false);
console.log("false");
}
}, [position]);
最佳答案
正如您在此处看到的,样式值是字符串,但使用 ===
运算符,您还检查类型相等性。
这意味着您检查 '0' === 0
它们不是同一类型,也是为什么您的支票从不进入 if 正文的原因。
要么检查 '0'
或使用 ==
忽略类型的运算符。
关于javascript - useEffect 不去 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73096939/