의 알 수없는 번호, 소품대로 돌아 오는 저장소에서 데이터를 전달 상황이다경로
- 나는 서비스에서 데이터의 알 수없는 금액을 받고 내 돌아 오는 저장소에 넣어하고 전체 방법 아래
- 내가 대응 데이터를 전달 할 수 있도록하고 싶습니다 렌더링을 참조하십시오 -
- 각각의 데이터 포인트는 경로 반응 라우터 (V3)을 사용하여이
<Route path=':rid' component={Restaurant}/>
같은 설정이다/:rid
- 자신의 경로를해야합니다 특정 레스토랑에 관한 것, 누구의 길 내 솔루션은 소품
this.props.restaurants
과 레스토랑 구성 요소에 상점의 모든 레스토랑을 전달하는 것입니다 지금 그 레스토랑
에 대한 올바른 정보로 구성 요소를 렌더링 할 수 있도록 소품으로 레스토랑의 구성 요소에 탐색했다. 그런 다음 componentWillReceiveProps
에서 모든 레스토랑을 반복하여 this.props.restaurants
에 넣고 각 레스토랑의 rid
이 this.props.routeParams
과 일치하는지 확인합니다. 즉 :rid
입니다. 만약 내가 그렇다면 그 상태를 보여주고 싶은 데이터를 포함하도록 설정하고 this.state.name
을 'this.props.name'에있는 데이터와 반대로 설정하십시오.
다른 방법이 있습니까? 지금은 성능 문제는 아니지만 반복적으로 큰 데이터 집합이 심각한로드 시간으로 이어질 수 있다고 상상할 수 있습니다. 또한 반응 라우터가이 데이터를 소품으로 전달해야하므로이 구성 요소를 무국적으로 유지할 수있는 것처럼 보입니다.
는이상적으로는이 같은 일이 일어날 것 :
요청이 만들어- 내하는 index.js에서
- 반응 라우터
/1234
에 컨설팅을 /를 REDUX 저장소를 조회하고 제거와 함께 레스토랑에 대한 데이터를 찾아 1234는 - 를 렌더링 컴포넌트 나는 그것이 아마도이
<Route path=':rid' component={<Restaurant {...matchedRestaurant} />}/>
이 퀘스트 같은 것을보고 상상에 소품으로 전달합니다 이온화는 짧게 질문 할 수 있습니다. 경로를 알 수없는 번호를 만들어 어떻게 탐색하면 해당 레스토랑의 데이터가 소품으로 렌더링됩니까?
Restaurant.js :
componentWillReceiveProps(nextProps) { this.props.restaurants.forEach((restaurant) => { if(restaurant.rid == nextProps.routeParams.rid) this.setState({name: restaurant.name}) }) }
하는 index.js :
render( ( <Provider store={store}> <Router history={hashHistory}> <Route path='/' component={App}> <IndexRoute component={RestaurantList} /> <Route path=':rid' component={Restaurant}/> </Route> </Router> </Provider> ), document.getElementById('root') )
https://github.com/caseysiebel/corner-team/blob/master/src/index.js
잠깐, 루프가 다음을 사용하여 여러 개의 레스토랑을 확보합니까? rid가 경로 매개 변수와 동일합니까? 또는 : 제거 항상 고유? –
또한 구성 요소의 많은 양의 데이터를 반복하는 경우 데이터를 표준화하여 저장소에서 다음과 같이 직접 데이터를 얻을 수 있도록해야한다고 생각합니다. 제거하면 쉽게 처리 할 수 있습니다. –
나는 모든 제거가 유일하다고 가정합니다. 내가 겪고있는 진짜 질문은 어떻게 반응 라우터가 소품으로 렌더링하는 레스토랑 구성 요소에 상점의 단일 레스토랑 (올바른 것)의 데이터를 전달할 수 있습니까? – Casey