2017-12-09 5 views
0

사용자가 단추 조합을 클릭 할 위치가 있다고 가정 해 보겠습니다.reacty에서 글로벌 상태 변경 후 새 작업 발송

각 버튼은 T 유형의 동작을 트리거하고 감속기 R은 상태를 업데이트하고 웹 사이트에서 새로운 조합이 렌더링됩니다.

이제는 까다로운 부분이 있습니다. 렌더 할 새 상태를 적용하는 축소기에 내 비즈니스 로직을 구현했습니다. 내가 필요한 것은 그 상태가 조건을 받아들이면, 새로운 액션 (API 요청)을 보내고 싶을 때이다.

이런 종류의 문제를 해결하는 올바른 방법은 무엇입니까?

상태로 플래그를 설정하고 구성 요소에서 새 작업을 호출 하시겠습니까? 어떻게 든 감속기에 기능을 파견합니까?

...?

+0

"_ 그 상태가 유효 할 때"- 유효한 상태에 대한 정의는 무엇입니까? –

+0

조건이 충족 될 때의 의미 – Gregor

답변

2

Redux Thunk를 사용하면 여러 작업을 디스패치하고 작업 작성자 내부에 비동기 작업을 전달할 수 있습니다. 귀하의 시나리오에서 다음과 같이 할 수 있습니다 :

function myAction() { 
    return (dispatch, getState) => { 
    ... 
    dispatch(firstAction); 

    const state = getState(); 

    // Check your state conditions from first action here. 
    dispatch(secondAction); 
    ... 
    } 
} 
+0

나는 당신의 해결책을 시도 할 것이고, 유망 해 보인다. – Gregor

+0

그래, 이거 야! – Gregor

1

이 경우 라이브러리 redux-saga을 사용할 수 있습니다. redux-saga를 사용하면 액션과 같은 구성 요소에서 호출하는 무용담을 만들 수 있습니다. 무용담에서는 여러 가지 희생양의 행동을 부를 수 있습니다. 상태가 사가에서 유효하면 API 요청을 호출 할 수 있습니다. redux-saga의 인기있는 대안은 redux-thunk입니다.

+0

썽크를 사용하여 시나리오에 대한 일부 시퀀스 다이어그램을 제공 할 수 있습니까? – Gregor

+1

죄송합니다, 나는 뱀을 사용한 적이 없으며 redux-saga를 사용했지만이 라이브러리가이 사건을 처리 할 수 ​​있다는 것을 알고 있기 때문에 썽크에 관해 썼습니다. –