AboutHeader.jsx:21 Uncaught TypeError:this.setState不是函数

时间:2016-10-15 19:24:47

标签: reactjs

我正在尝试进行一个状态更改,它将在setTimeout之后更改className,但是,我一直得到一个“AboutHeader.jsx:21 Uncaught TypeError:this.setState不是一个函数”我试过绑定(这个)但它仍然行不通。 从'react'中导入React;

要求(” ../../样式表/组件/ AboutHeader.scss');

export default class AboutHeader扩展了React.Component {

constructor() {
    super()
this.timeDelay = this.timeDelay.bind(this);
    this.state = {
        class: "about-header-wrapper-hidden"
    }
}

componentDidMount() {
console.log("mounted");
    this.timeDelay();
}

timeDelay(){     setTimeout(function updateState(){this.setState({class:“about-header-wrapper”})},1000);     console.log(“timeDelay working”);   }

render() {
    return (
        <section className={this.state.class}></section>
    )
}

}

1 个答案:

答案 0 :(得分:1)

您必须.bind(this)setTimout()。绑定this的{​​{3}}。如果删除它,则会抛出错误。

setTimeout(function updateState() {
  this.setState({ class: "about-header-wrapper" })
}.bind(this), 1000);