javascript - componentDidMount 中的意外关键字 'const',React

标签 javascript reactjs react-native dom

我试图通过获取 DOM 元素并使用 componentDidMount 将函数传递给它来制作粘性标题,但得到一个错误,即“const”是一个意外的关键字:

成分:

class Header extends Component {

  componentDidMount(){
    window.addEventListener('scroll', () => {
      const isTop = window.scrollY > 100,
      const nav = document.getElementById('nav');
      if (isTop) {
        nav.classList.add('scrolled');
      }else {
        nav.classList.add('scrolled');
      }
    });
  }

  componentWillUnmount() {
    window.removeEventListener('scroll');
  }


  render() {
    return (<>
      <header>
        <nav class="nav" id="nav">
          <ul class="header-list">
            <li>
              <img alt='phone' src={phonelogo} />
            </li>
            <li>123456789</li>
          </ul>
          <ul class="header-list">
            <li>
              <img alt='email' src={email} />
            </li>
            <li>123@gmail.com</li>
          </ul>
        </nav>
      </header>
    </>)
  };
};


export default Header;

错误:
Line 17:7:  Parsing error: Unexpected keyword 'const'

  15 |     window.addEventListener('scroll', () => {
  16 |       const isTop = window.scrollY > 100,
> 17 |       const nav = document.getElementById('nav');
     |       ^
  18 |       if (isTop) {
  19 |         nav.classList.add('scrolled');
  20 |       }else {

虽然,使用 React refs 可能更好,但这里发生的事情仍然很有趣。

最佳答案

你写:

 const isTop = window.scrollY > 100,
 const nav = document.getElementById('nav');

您需要将第 16 行末尾的逗号替换为逗号。像这样:
 const isTop = window.scrollY > 100;
 const nav = document.getElementById('nav');

关于javascript - componentDidMount 中的意外关键字 'const',React,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62002995/

相关文章:

reactjs - 在调度时使用异步等待

javascript - 用数组键/值替换字符

javascript - 完全加载完整页面后发生移动站点重定向

javascript - 导航属性不会刷新

javascript - 如何在 ReactJS 中有条件地加载组件

javascript - react native Flatlist 网格和项目标题

javascript - jQuery 上传文件插件 - 上传后如何重新加载页面?

ajax - CORS google chrome 扩展有什么替代品吗?如何在不使用 CORS 的情况下发出成功的 ajax 请求?

node.js - 使用 express 在 axios post 请求后进行重定向

android - react 原生构建错误 : package android. support.annotation does not exist