2017-12-29 18 views
0

초기로드 중에 감속기에서 반환 된 값이 업데이트 중입니다. 그러나 반환 된 후속 값은 상태에서 업데이트되지 않습니다.Redux : 감속기에서 반환 된 새 값이 상태에서 업데이트되지 않습니다.

감속기 코드 아래에서 connectToTradeServer는 다른 사이트로 축 호출을 호출하고 데이터를 가져 오는 함수입니다.

export default (state = [{"_id":"helkjdflj"}], action) => { 
    switch (action.type) { 
     case TRADE_LIST_UPDATED: { 
      connectToTradeServer((err, res) => { 
       if (err) { 
        return state; 
       } else { 
        return res; 
       } 
      }); 
    } 
    default: return state; 
    } 
} 

여기서 내가 뭘 잘못하고 있니? 미리 감사드립니다.

+0

왜 외부 스위치가 기본 설정입니까? – VivekN

답변

1

기본적으로 Redux의 감속기는 동기식 기능입니다. 내부에 비동기 작업이 있습니다. return 문 안에 connectToTradeServer은 아무런 효과가 없습니다. 비동기 작업 처리 방법을 배우려면 redux-thunk 또는 redux-saga 프로젝트를 확인하는 것이 좋습니다.

TRADE_LIST_UPDATED의 경우도 return이 아닙니다. 결국 모든 감속기 호출은 초기 상태로 돌아갑니다.

+0

고마워요. 나는 초짜 다. 그래서 일이 어떻게 돌아가는지 혼란 스럽다. 제안을 확인합니다. –