redux 저장소가 올바르게 업데이트되지만 구성 요소에 변경 내용이 반영되지 않는 문제를 추적했습니다. 저는 여러 가지 방법으로 국가를 돌연변이시키지 않았지만 문제는 지속됩니다.()를 호출 나는 보통 Object.assign를 중첩 사용, 내 copyState 기능에 대한JSON.parse (JSON.stringify (state))는 redux 상태의 변이를 보장하지 않습니까?
case 'ADD_OBJECT_TO_OBJECT_OF_OBJECTS': {
newState = copyState(state);
newState.objectOfObjects[action.id] = action.obj;
return newState;
}
하지만 오류를 방지하는 것은 그렇게 간단하지 않다 : 내 감속기는 일반적으로 형태를 취한다. 테스트를 위해, 나는 상태를 돌연변이 아니에요 확인하기 위해, 관계없이 프로세스가 얼마나 비싼 (REDUX) 상태를 돌연변이하지의 보장 방법으로
const copyState = (state) => {
return JSON.parse(JSON.stringify(state));
};
를 사용하는 것이 맞습니까?
그렇지 않은 경우 상태를 변경하지 않기 위해 의존 할 수있는 다른 딥 복사 방법이 있습니까?
편집 : 다른 사람들이 동일한 문제를 겪고있는 것을 고려해 볼 때, 나는 그 문제에 대한 해결책을 전달할 것입니다.
조치를 파견하려고 시도한 후 라인에서 이전 행에서 갱신 된 상점의 데이터에 액세스하려고했습니다.
dispatchAction(data) // let's say this updates a part of the redux state called 'collection'
console.log(this.props.collection) // This will not be updated!
는
https://github.com/reactjs/redux/issues/1543
'state' 줄 수 있습니다 (그러나 믿을 수 없을만큼 바보) 것'copyState' –
에 그대로있을 것'을 변이합니다'.toJSON' 방법을 state'. – Bergi