나는 투표 할 수있는 투표와 함께 투표 신청을 만들고 있습니다. 나는 현재 투표 (기본적으로 투표 만들기)에 투표하고 있습니다.React Relay : 복잡한 돌연변이 체지방 쿼리
내 스키마 :
(길고도 짧은 이야기 :. 여론 조사는 본점에서 액세스 할 수 있지만 시청자의 투표 및 투표가 필드로 (그를 직접 액세스 할 수 있습니다) 투표는 최소 저장소에서 액세스 할 수 있습니다, 그러나 여론 조사의 투표은 직접도 액세스 할 수 있습니다.
query {
store {
polls { //poll connection
edges {
node { //poll
votes { //vote connection
...
}
}
}
}
votes { //vote connection
edges {
node { //vote
...
}
}
}
}
viewer {
polls { //poll connection
edges {
node { //poll
votes { //vote connection
...
}
}
}
}
votes { //vote connection
edges {
node { //vote
...
}
}
}
}
}
이 복잡한 스키마가 변경 될 수있는 모든 것을 정의해야하기 때문에 나는 내 지방 쿼리를 정의하는 방법에 대해 저를 혼동한다.
을 여기에 ' 변경 될 수있는 것 :
- 팻 (fat 쿼리에서 voteEdge)이 작성되었습니다.
- 스토어에서 투표 연결에 투표가 추가되었습니다.
- 투표자의 투표 연결에 투표가 추가되었습니다.
- 저장중인 폴링 연결의 일부 설문 조사에서 투표 연결에 투표가 추가되었습니다.
- (설문 조사자가 설문 조사자이기도 한 경우에만 가능) : 설문 조사에서 설문 조사를 통해 투표 연결에 투표가 추가됩니다.
그럼 제 질문은 어떻게해야 내 허황한 쿼리에서이를 표현해야합니까?
getFatQuery() {
return Relay.QL`
fragment on CreateVoteMutation {
voteEdge,
viewer{
polls,
voteCount
votes,
},
store{
polls,
voteCount,
votes,
}
}
`;
}
아니면 여론 조사에서 투표를해야합니까?
getFatQuery() {
return Relay.QL`
fragment on CreateVoteMutation {
voteEdge,
viewer{
polls{
edges{
node{
voteCount,
votes
}
}
},
voteCount
votes,
},
store{
polls{
edges{
node{
voteCount,
votes
}
}
},
voteCount,
votes,
}
}
`;
}
고마워요!
다시 한번 감사 드리겠습니다. 릴레이 팻 쿼리의 핵심은 변이를 실행 한 후에 변경할 수있는 모든 데이터를 정의하는 것이라고 생각합니다. 그렇다면 대답에서 선택한 옵션 중에서 어떻게 선택할 수 있습니까? 각각 하나만 변경 될 수있는 부분 만 표시됩니다. 내가 놓친 것이 있습니까? –
예, 요점은 변경해야하는 모든 데이터의 컨텍스트를 제공하는 것입니다. Relay의 getOptimisticResponse를 사용하여 성능을 위해 캐시 저장소에서로드하는 압축 된 쿼리를 제공 할 수 있으며 getFatQuery는 앱의 마지막에 원하는 전체 쿼리입니다.전체 유형 및 서브 필드 일 필요는 없습니다. – vince