javascript - useEffect 不去 if 语句

标签 javascript reactjs use-effect

并不真正理解为什么这个代码部分不能正常工作。
这个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]);
enter image description here

最佳答案

String Values
正如您在此处看到的,样式值是字符串,但使用 === 运算符,您还检查类型相等性。
这意味着您检查 '0' === 0它们不是同一类型,也是为什么您的支票从不进入 if 正文的原因。
要么检查 '0'或使用 ==忽略类型的运算符。

关于javascript - useEffect 不去 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73096939/

相关文章:

javascript - 通过在 contenteditable 上按 Enter 制作一个 <br> 而不是 <div></div>

android - 在 this.state.message 中显示接收者消息

javascript - 使用 useEffect 时无限循环

javascript - Axios 没有通过 useEffect() 得到任何东西(React Js)

javascript - JS : How to get list of supported HTML canvas globalCompositeOperation types

javascript - Javascript响应 Uncaught SyntaxError : Unexpected token '<' or Syntax error

javascript - NoUislider 更改 block 元素的不透明度

javascript - 如何在 React 中更新特定的 redux 状态片段

javascript - 如何模拟在 jest/enzyme 中传递给wrapper.instance().method 的参数?

javascript - 了解 useEffect() 和 useState() Hook 的行为