2017-04-25 104 views
1

我有一個困惑。我試圖在setState中添加數組變量。我的代碼工作正常,但在提交我的代碼之前想確認一些疑問。反應集狀態變量

哪種方法可以將數組存儲在狀態變量中?

var names = ['Jake', 'Jon', 'Thruster']; 

this.setState({ 
    state: names 
}); 

或者

this.setState((state) => { 
    state.items.push(names[0]); 
    return state; 
}); 

什麼是必要的這裏return語句?

有人可以解釋一下這裏的區別嗎?我在谷歌搜索,但我仍然困惑。

+1

你問爲什麼* *您必須從箭頭的函數返回'state'? –

回答

0

第一種方法更常見,在我看來,更易於閱讀。你的代碼問題是你不需要使用鍵狀態,因爲你調用的函數是「設置狀態」。關鍵應該像firstNames一樣。

this.setState({ 
    firstNames: names 
}); 

你也可以在這樣的函數中傳遞對象,因爲setState需要一個對象作爲參數。

變種namesObject = { firstNames:名稱 }

this.setState(namesObject);

我會在這裏閱讀更多關於它的信息,並繼續在這個小的教程上,你會得到它的竅門。 https://facebook.github.io/react/docs/react-component.html#setstate

0

var names = ['Jake', 'Jon', 'Thruster'];

this.setState({ names //according to Airbnb rules });

this.setState({ names: names });

this.state.names = ['Jake', 'Jon', 'Thruster'];

setState需要第二個參數 - 回調,之後將被稱爲設置國家財產

setState({property1: value1, ...},() => { //some code after State changed })