2017-12-21 29 views
0

이제 'componentWillRecieveProps'를 사용하여 Redux 상태의 'nextProps'를 확인하여 완료 여부를 확인합니다. 이 예와 같이 체크하는 방법 데이터가 완료된 후 업데이트 (REACTJS + REDUX)

,

if (!nextProps.a.update && !nextProps.a.error && 
    nextProps.a.update !== this.props.a.update) { 
    const oldData = [...this.props.a.data]; 
    const newData = [...nextProps.a.data]; 
     . 
     . 
     . 
    }); 
} 
} 

사람이 그것을 확인하는 또 다른 좋은 생각이나요?

감사합니다.

답변

0

Redux-saga 또는 thunk와 같은 미들웨어를 사용하는 경우 미들웨어 자체에서 업데이트가 완료되었는지 여부를 확인할 수 있으며 업데이트가 완료되면 미들웨어 자체에서 작업을 보내고 통지를받을 수 있습니다. 귀하의 사례에 어느 정도 적합한 지 잘 모르겠습니다.

+0

저는 사가에서 사용할 수 없습니다. 무슨 생각 했니? – ppppp

0

정말 다릅니다. 1. 구현하려고하는 논리가 동일한 구성 요소에만 해당되며 한 번에 하나의 발송 작업 만 수행하면 플래그를 사용하는 것이 좋습니다. '업데이트 예정'에 true를 설정하고 '완료했습니다' '(필요한 경우 마운트와 동일). 2. 로직이 거의 작동하지 않을 경우 약속을 사용하여 대량화 메커니즘을 만들 수 있습니다. 다시 말하지만, 당신의 논리에 달려 있습니다. 각 유형의 업데이트에 대해 플래그를 사용하는 것으로 충분할 수 있습니다. 3. 논리가 시스템 전체에 적용되는 경우 전역 변수를 사용하고 '창'으로 설정할 수도 있습니다. 예를 들어, 'isLoading'이라는 변수를 구현하고 싶었습니다.이 변수는 보류중인 Ajax 호출이 있는지를 정의합니다.

내가 찾고있는 것이 있다면 알려 주시기 바랍니다.

+0

플래그는 무엇입니까? 그리고 'will update'는 setState (플래그를 설정할 수 없음) 일 수 없습니다. – ppppp

+0

플래그 - 구성 요소의 부울 표시기입니다. 1. 업데이트 상태는 setState를 사용하지 않고 상태 nextState를 업데이트하여 상태를 설정할 수 있습니다. 2.이 플래그는 사용자의 상태로 유지할 필요가 없습니다. 구성 요소 자체에서 사용할 수 있습니다. 데이터 업데이트 자체가 업데이트주기를 유발하므로이 플래그가 항상 트리거됩니다. –