我是新來的ReactJS,我有一個錯誤「this.setState不是一個函數」。ReactJS:this.setState不是函數嗎?
constructor() {
super();
this.state = {
visible: false,
navLinesShow: true
};
this.navOpen = this.navOpen.bind(this)
}
navOpen() {
this.setState({
navStatus: "navShow",
navLinesShow: false
});
if (this.state.visible === false) {
setTimeout(function(){
this.setState({
visible: true
});
}, 3000);
}
我已將this.navOpen = this.navOpen.bind(this)添加到構造函數中。所以我想問題是用setTimeout函數。
什麼是可能的修復?
謝謝。
你好Pinturic。是的,這是完美的。也許你可以解釋這個以幫助我更好地理解? – xoomer
你也可以使用箭頭函數:'setTimeout(_ => {this.setState(...)},3000)''讓'this'按預期工作 – pawel
我更新瞭解決方案,如果它不清楚我會詳細介紹它。如果你的瀏覽器/轉發器支持它,你可以使用胖箭頭語法 – pinturic