2017-03-29 50 views
0

我在ReactJS新的,和我遇到一些問題。ReactJS類型錯誤:無法讀取屬性「的setState」

我也瞭解了ES6語法,它說下面的代碼都是同一個意思。

1.

YTSearch({key: API_KEY, term: 'nba'}, function(videos) { 
    this.setState({ videos }); 
}); 

2.

YTSearch({key: API_KEY, term: 'nba'}, (videos) => { 
    this.setState({ videos }); 
}); 

然而,第一種方式拋出此錯誤

TypeError: Cannot read property 'setState' of undefined 

回答

3
YTSearch({key: API_KEY, term: 'nba'}, function(videos) { 
    this.setState({ videos }); 
}); 

拋出一個錯誤,因爲這裏this回調裏面沒有按不要提及到context of React Component而不是函數本身的上下文,因此setState在此處未定義。

在第二個範例

YTSearch({key: API_KEY, term: 'nba'}, (videos) => { 
    this.setState({ videos }); 
}); 

您正在利用arrow函數的給函數結合到反應部件的上下文中。另一種方法做同樣的將使用bind(this)

YTSearch({key: API_KEY, term: 'nba'}, function(videos) { 
    this.setState({ videos }); 
}.bind(this)); 
+0

謝謝,所以它似乎解釋錯誤的教程。 –

相關問題