2016-10-31 2 views
0

사용자 입력이 필요한 구성 요소가 있습니다. 저장소를 저장하면 작업 상태를 업데이트하기 위해 작업을 수행합니다.React/Alt - 사용자 입력에 응답 할 때 디스패치 내의 디스패치를 ​​방지 하시겠습니까?

이 새로운 정보에 대한 응답으로 결과 구성 요소는 비동기 작업을 실행하고 새 정보가 다시 제공 될 때 응답해야합니다.

내가 해보고도 해킹 setTimeout 또는 발송 중 배송 오류가 남아있는 것 같습니다.

비동기 작업은 데이터 원본을 통해 정의되며 윤곽이 지정된 here이라는 자체 저장소가 있습니다. 이 행동을 구조화하는 올바른 방법은 무엇입니까?

  1. 입력 구성 요소가 사용자 입력을 수신했습니다.
  2. 입력 구성 요소가 상점의 상태를 업데이트하는 작업을 사용
  3. 는 현재 저장소가 출력 구성 요소가 필요로하는 비동기 작업을 시작하려고 는
  4. 이 시점에서 나의 선택이 될 것으로 보인다 디스패치와 파견 오류 또는 해킹 솔루션은 setTimeout입니다. 둘 다 정확하다고 느끼지 않습니다.

내가 무엇이 누락 되었습니까?

+0

@ JaromadaX 그래서 내가 설명한 흐름은 반응과 altjs로 상태 변경과 비동기 동작을 트리거하는 사용자 입력을 어떻게 구성 할 것입니까? 코드 문제가 아니라 플로우 문제가 있습니다. 나는 코드가 필요 없다. 프로그램 구조 응답이 필요합니다. –

+0

OK - 나는 흐름의 일부로 "오류 또는 해킹"을 본 적이없는 것 같아요. –

+0

@JaromandaX 전체 소개 텍스트를 읽지 않은 사람들을 위해 질문을 업데이트 할 것입니다. –

답변

0

데이터 소스에 대한 예제를 무시하십시오. 상점에 registerAsync을 사용하지 마십시오.

대신에 비동기 동작을 수행하고 결과 업데이트 저장소를 사용하는 동작을 사용하십시오. 당신이 준 예에서, 입력 요소에서이 작업을 수행 :

Action1.updateStore() 
AsyncAction2.run() 

그런 다음, 업데이트 및 결과 구성 요소를 알리기 위해 AsyncAction2 행동을보고 저장소를 사용합니다.

0

당신이 그 시점에 파견하려는 것이고 "파견 기간 내에 파견"오류가 발생하지 않도록하려면 alt의 .defer 방법을 사용할 수 있습니다 (http://alt.js.org/docs/actions/ 참조).