2017-06-01 41 views
1

我不得不說,我尋找的時間並沒有什麼答案幫助我,所以在這裏我的問題:不能背景值綁定到setInterval函數Reactjs

componentDidMount() { 
    var self = this 
    console.log(`INIT keys ${this.props.variants}`); // INIT KEYS [Object], [Object] ... 
    this.interval = setInterval(function() { 
    console.log(`Keys ${self.props.variants}`); // Keys ... 
    }.bind(self), 1000) 
} 

初始化密鑰存在,但按鍵內部間隔不。
有人可以幫助我嗎? :)

+0

一很多可能會在1000毫秒內發生。對象一秒鐘後發生改變並不令人感到意外,但是這一小段代碼並不足以讓我們猜測爲什麼。 –

+0

是自我定義的嗎?你不應該在你的函數裏面使用'this'而不是'self'嗎? – Ksyqo

+0

@Ksyqo,OP沒有在回調中使用'this'(但使用'self'),所以箭頭函數在這裏沒有幫助。 – Chris

回答

0

在您的setInterval界限中,您將不得不使用this而不是self。此外,你不需要重新聲明this

componentDidMount() { 
    console.log(`INIT keys ${this.props.variants}`); 
    this.interval = setInterval(function() { 
    console.log(`Keys ${this.props.variants}`); 
    }.bind(this), 1000) 
} 

如果你可以用箭頭的功能,你可以忽略綁定爲一個箭頭功能不重新聲明this

componentDidMount() { 
    console.log(`INIT keys ${this.props.variants}`); 
    this.interval = setInterval(() => { 
    console.log(`Keys ${this.props.variants}`); 
    }, 1000) 
}