2016-11-26 7 views
1

새 사용자 객체를 허용하기 위해 상태 내부의 사용자 배열을 업데이트하는 방법을 알아야합니다.반응 상태 객체 배열을 업데이트하는 방법

상태 사용자 배열에는 ID와 이름 만 포함됩니다.

업데이트 추가 기능을 사용하여 사용자 배열에서 항목을 푸시하려고합니다.

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

"반응-dom.js을 : 17,858 catch되지 않은 오류 : 개체가 반작용 아이로 사용할 수 없습니다. (발견 : 키 {ID, 이름}과 오브젝트) 당신이 아이들의 컬렉션을 렌더링하는 의미 경우, 사용 배열을 대신 사용하거나 React 애드온의 createFragment (object)를 사용하여 객체를 래핑하십시오. 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

관련 문제