2016-06-30 1 views
2

데이터를 표시하고 양식에서 동일한 데이터를 편집하는 상태 전환 구성 요소가 있습니다. 데이터를 저장하면 액션이 AJAX를 통해 API를 호출하고 업데이트가 성공했을 때 RECEIVE_UPDATE을 전달합니다 (redux-thunk 사용).AJAX가 완료된 후 상태 저장 구성 요소를 재설정하는 방법은 무엇입니까?

저장에 성공하면 상태 보존 구성 요소가 editing 상태을 다시 false으로 변경하여 양식을 사라지게합니다.

componentWillReceiveProps의 상태를 editing 상태로 재설정하고 소품을 통과 한 데이터를 비교하는 것이 좋습니다. 이것은 editing 상태가 RECEIVE_UPDATE 작업의 결과로 변경되어야하지만 약간 서투른 것처럼 보입니다. 이를 달성하기위한 우아한 방법이 있습니까?

업데이트 : 자세한 내용은이에 대한

// component, connected to the reducer 
state: { editing: true } 
props: { name, address, city } 

// reducer data 
{ name: "Toby", address: "123 Test Ave", city: "NYC" } 
+0

'RECEIVE_UPDATE'의 감속기에'editing = false'를 설정하면 작업을 수행해야합니다. –

+0

설명 :'editing'은 감속기가 아닌 구성 요소의 상태 변수입니다 – Daniel

+0

이것이 원하는 것이 아니라면 답을 삭제하겠습니다. – lux

답변

3

일반적인 패턴은 REQUEST_UPDATEisUpdating: true로 REDUX 저장소에 값을 설정하는 것입니다. 그런 다음 RECEIVE_UPDATE을 false로 다시 설정합니다. 그러면 상태 저장 구성 요소가 isUpdating 소품에 연결되어 변경 될 때받습니다.