2016-11-26 9 views
1

新しいユーザーオブジェクトを受け入れるために、状態内のユーザー配列を更新する方法を知る必要があります。反応状態オブジェクト配列を更新する方法

状態ユーザーアレイには、IDと名前のみが含まれています。

私は、ユーザーの配列内の項目をプッシュするために更新アドオンを使用しようとします。

var newUser = {id:1, name:'Foo'}; 
let newState = update(this.state, {users: {$push: [newUser]}}); 

「反応-dom.jsを:17858不明なエラーを:オブジェクトが反応子として有効ではありません。(見つから:キー{ID、名前}を持つオブジェクト)あなたが子供のコレクションをレンダリングすることを意図した場合は、使用代わりに配列を使用するか、またはReactアドオンのcreateFragment(オブジェクト)を使用してオブジェクトをラップします。UsersTable(...)のレンダリングメソッドを確認してください。

+0

エラーメッセージに記載されている方法を試しましたか?例えば、 '{id:...}'を '[id:...]'に置き換えるとうまくいくはずです。 –

+0

私も同じ問題があります。 – yk1007

答えて

0

状態を変更しています。代わりに試してください:

const users = this.state.users 
users.push(newUser) 
this.setState(Object.assign({}, this.state, { users }})) 
+0

いいえ動作していません – Sumthg

+0

私は私の答えを編集しました、このようにしてください。 –

+0

これを行う良い方法は次のとおりです: 'this.setState((prevState)=> {users:prevState.users.push(newUser)})' – cynicaldevil

関連する問題