getInitialState()在控制台中显示错误

时间:2019-08-07 07:38:14

标签: reactjs

我正在尝试为我的应用创建切换菜单。

我遇到“ getInitialState()”问题。显示错误,例如:

  

警告:getInitialState是在标头(普通的JavaScript)上定义的   类。仅使用   React.createClass。您是不是要定义状态属性?*

这是我的代码:

class Header extends Component {
  constructor(props){
    super(props);
  }
  getInitialState(){
    return {"showHideSidenav":"hidden"};
  }

  render() {
    return (
      <div className="header">
        <div className="toggle-btn" onClick={this.toggleSidenav.bind(this)}>
          <div>
            <span></span>
            <span></span>
            <span></span>
          </div>
          <span>Menu</span>
        </div>
        <div className={this.props.showHideSidenav} id="main-menu">
          <ul>
            <li>
               1
            </li>
            <li>
               2
            </li>
            <li>
               3
            </li>
            <li>
              4
            </li>
          </ul>
        </div>
      </div>
    )
  }
  toggleSidenav() {
    var css = (this.props.showHideSidenav === "hidden") ? "show" : "hidden";
    this.setState({"showHideSidenav":css});
  }
}

我该如何解决?

1 个答案:

答案 0 :(得分:2)

我想您可以在这里找到答案-> React, ES6 - getInitialState was defined on a plain JavaScript class

摘要:

如果使用扩展React.Component的es6类,则需要在构造函数中定义状态:

this.state = {...}
es5 getInitialState()函数中使用了

React.createClass