2016-06-27 9 views
1

컨테이너에 여러 단편이있는 경우 어떻게합니까? forceFetch 중 하나만 사용할 수 있습니까?force 중계 컨테이너에서 특정 단편을 가져옵니다.

Relay.createContainer(MyContainerComponent, { 
    fragments: { 
     fragment1:() => Relay.QL`my first fragment`, 
     fragment2:() => Relay.QL`my second fragment` 
    } 
}); 

문서에 따르면 this.props.relay.forceFetch()을 호출하면 컨테이너와 관련된 모든 조각이 업데이트됩니다.

'있는 그대로'강제로 가져 오는 동안 작업을 수행하는 동안 릴레이의 전체 지점은 초과/미만 인출을 피하는 것입니다.

어떤 조언이 필요합니까?

답변

0

Refetches가 용기에 의해 관리되므로, 하나 개의 솔루션이 될 것이다 :

Relay.createContainer(MyContainerComponent, { 
    fragments: { 
     fragment1:() => Relay.QL`fragment on SomeThing { ${SomeThingContainer.getFragment("something")}`, 
     fragment2:() => Relay.QL`fragment on OtherThing { ${OtherThingContainer.getFragment("otherthing")}` 
    } 
}); 

는 그런 다음 자신의 개별 조각들을 재 취득 개의 서브 용기를 사용한다.

당신이 실제로 그래서 당신은 전체 컨테이너 조각을 refetching, 하위 컨테이너로 사람들을 분리 할 수 ​​MyContainerComponent 두 조각의 데이터가 필요한 경우

은, 그러나 ... 나를 위해

을 의미가 정말 이 필요한 경우 두 조각의 데이터와 은 실제로 중 하나만 다시 가져오고 싶을 때 항상 명령형 저장소 API를 사용하여 원하는 모든 항목에 대한 임의 (ad-hoc) 쿼리를 실행할 수 있습니다. 자세한 내용은 this question을 참조하십시오. 제외

:

릴레이의 요점은

내가 동의

를 가져 오는 아래/이상 피할 수 ... 그건 물론 환영 이점은, 그러나 진짜 "점"이다 구성 요소에 데이터를 가져 오는 데 필요한 선언적 프레임 워크입니다. 개별 컨테이너 조각을 다시 가져 오기위한 간단한 선언 API는 없습니다. 어쩌면 있어야합니다! 하지만 아마 당신이 여기에 조기에 최적화 할 가능성이 높습니다 :)

+0

네빌은 고맙습니다. 저는 확실히 여기에서 최적화되고 있습니다.하지만 실례합니다. 정말로 필요하다면 계전기가가는 길에 들어 가지 않을 것입니다. 그런 종류의 일을하는 것. – Kamek