2016-11-26 78 views
1

我需要知道如何更新狀態內的用戶數組以接受新的用戶對象。如何更新反應狀態對象數組

狀態用戶數組僅包含標識和名稱。

當我嘗試使用更新插件推送用戶數組中的項目。

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

「反應-dom.js:17858未捕獲的錯誤:對象是不是一個陣營的孩子有效。(發現:物體鍵{ID,名稱})如果你的意思是使兒童的收集,使用(...)「

+0

您是否嘗試過錯誤消息中提及的方法?例如,用'[id:...]'替換'{id:...}',它應該可以工作? –

+0

我也有同樣的問題。 – yk1007

回答

0

你正在改變狀態。你可以使用createFragment(object)從React附加組件包裝對象。請嘗試:

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