2017-06-15 8 views
0

に反応しますか?それは私が行うときに動作しません。SETSTATEは、例えば、私が持っている、これをネイティブ

this.setState({ lang1.name: "myExample" }); 

私はネイティブリアクトに新たなんだと私ははっきり

+0

の可能性の重複を上書きする[リアクトでオブジェクトを更新する方法状態](https://stackoverflow.com/questions/36650570/how-to-update-object-in-react-state) –

+0

このquesを検索すると**状態**でオブジェクトを更新する方法同じ質問のために非常に多くの結果が得られた尋ねられたか否か。これもチェックしてください:https://stackoverflow.com/questions/29537299/react-how-do-i-update-state-item1-on-setstate-with-jsfiddle –

+0

私は@MayankShuklaに同意します –

答えて

2
this.setState({ 
    lang1: { 
    name: "myExample", 
    code: this.state.lang1.code 
    } 
}); 
+1

これはなぜ動作するのか説明してくださいコードだけの回答を与えるのではなく、現状のままで、この回答はOPや将来の訪問者が何が起こっているのかを理解するのにはあまり役立ちません。また、ES6の '...'スプレッド演算子を使用して、例を一般的なシナリオに適用しやすくすることができます – Bojangles

+0

あなたが正しいボアングルですが、私はこの答えがより役に立つと思っていますhttps://stackoverflow.com/a/44562452/2674187、そして理由は、jsでは、この 'lang1.name'のようなオブジェクトのキーを持つことはできません。' lang1.name 'ビットを持つことができます。istはネストされたオブジェクトでありません。 – ashmna

+0

はい、あなたの記事を見る前に私は私の解決策を解決しました。しかし、説明のおかげで、私はもっと理解しています:) – Erased

2

あなたはこのようにそれを行うことができますことを理解していなかった。

this.setState((previousState) => { 
    const lang1 = previousState.lang1 
    return {...lang1, name: 'myExample'} 
}) 
+0

ありがとうあなたは非常にあります – Erased

1

これを行うことができます。 ...ただキーを出追加し、追加/新規

this.setState({ 
 
\t lang1:{ 
 
\t \t ...this.state.lang1, 
 
\t \t name: "myExample" 
 
\t } 
 
})

+0

おかげで男! – Erased

0

値がパラメータである...

let data = this.state.objectState 
data[prop] = value 
this.setState({objectState: data}) 
関連する問題