2017-11-26 10 views
0

Simple SPA, 항목 목록, componentDidMount 일 때 API에서로드됩니다. 사용자가 목록의 항목을 클릭 할 때와 REDUX 저장
비 인덱스 페이지에서 앱을 시작할 때 redux store를 준비하십시오.

에 결과를 저장, 그것은 항목의 세부 정보 페이지로 이동 stateless component 패턴에 REDUX 저장소에서 세부 사항, container component에서 전통을 표시합니다.

모든 잘 작동하지만 한 가지 문제는, 때 사용자가 세부 정보 페이지 /item/:itemId에서 바로 웹 응용 프로그램을 엽니 다

  1. 서버가 index.html
  2. React router 다음 걸릴 것입니다 제어 및 경로 사용자를 반환합니다 URL이 일치하기 때문에 세부 정보 페이지로 이동하십시오.

이번에는 초기화 단계가 없어 store이 완전히 비어 있습니다.

이 용도로 사용하기 적합한 해결책은 무엇입니까?

나는 단순히 원하는 propundefined 경우, 나는 초기화를 수행하는 API를 호출, componentDidMountprops을 확인할 수 있다고 생각합니다.

stateless component 전에 redux store이 준비되지 않았다는 것을 알기 때문에 컨테이너 구성 요소에서이 단계를 수행 할 수있는 방법이 있습니다.

또는 list to detail은 웹 세계에서 이러한 패턴이 있다고 생각합니다.이를 처리하는 가장 좋은 방법이 있습니까?

답변

0

한 번 비슷한 앱을 사용했습니다. 애플리케이션에서 상태를 가져 오는 대신, 반출 앱 초기화와 병행하여 인출 프로세스 + redux를 채우는 작업을 수행했습니다.

따라서 가져 오기를 시작하는 하나의 기본 Javascript 파일을 갖게됩니다. 완료되면 redux 저장소를 채 웁니다. 이것은 비동기입니다. 그래서 병렬로 당신은 반응 응용 프로그램을 시작할 수 있습니다

fetchData().then(fillReduxStore()); ReactDom.render()

은 그래서 앱이이해야 할 모든 라우팅과 일을 할 것입니다 반응하고 즉시 데이터가 존재하는 한, 응용 프로그램이 채워집니다.

+0

매우 흥미로운 접근 방법입니다. 공유해 주셔서 감사합니다. 질문이 하나 있습니다. 사용자가 세부 정보 페이지에서 시작하면 전체 목록이 아닌 사용자가 요청한 바로 그 항목을 간단히 가져오고 싶지만이 방법을 통해 다른 사례와 구별 할 수있는 방법이없는 것 같습니다. 맞습니까? 또는 나는 무엇인가 놓치고 있냐? –

+0

가져 오기 전에 URL을 확인할 수 있습니다. Parameter 나/item/$ id가 있으면 그것을 추출하고 필요한 데이터를 가져옵니다. 난 열쇠가 redux 생각하고 별도로 처리 할 수있는 두 가지 우려로 반응하는 것 같아요 :) –

+0

Understand. 예. 단순히 다른 문서를 처리하기 위해'document.URL'을 검사 할 수 있습니다. 다른 흥미로운 솔루션을 기다릴 수 있지만이 항목은 항목 세부 정보 페이지에 필요한 변경이 없기 때문에 꽤 좋은 것으로 들립니다. 감사. –