2017-04-25 15 views
1

私は混乱しました。 setStateに配列変数を追加しようとしています。私のコードは正常に動作していますが、私のコードをコミットする前に疑念を確認したいと思っていました。反応設定状態変数

どのような状態変数に配列を格納する正しい方法はありますか?

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

this.setState({ 
    state: names 
}); 

それとも

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

ここでreturn文の必要ですか?

ここで違いを教えていただけますか?私はGoogleで検索しましたが、私はまだ混乱しています。

+1

州のプロパティを設定するあなたは、矢印関数から 'state'を返す必要が*なぜ*あなたが求めていますか? –

答えて

0

最初のアプローチはもっと一般的で、私の意見では、読みやすい。あなたのコードの問題は、あなたが呼び出している関数が "設定状態"なので、キー状態を使う必要はないということです。キーはfirstNamesのようなものでなければなりません。

this.setState({ 
    firstNames: names 
}); 

setStateはオブジェクトとしてパラメータを取るため、このような関数でオブジェクトを渡すこともできます。

するvar 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 })

関連する問題