2017-02-03 5 views
0

私はapolloクライアントを使用して変異を持つオブジェクトのリストに追加します。イベントがあり、参加者を追加していて、詳細画面でリフレッシュされたイベントを取得するためにrefetchQueriesを使用しています。残念ながら、この再フェッチ中にdata.loading == trueのステータスが取得されないため、ユーザーはその参加者の参加ボタンを何度も押し続けている可能性が高くなります。apolloクライアントを使用すると、どのようにmutation refetchQueriesにローディングステータスを設定しますか?

<Button styleName="dark full-width" onPress={()=> { 
      this.props.joinEvent({ 
       variables: { eventId: Event.id, userId: user.id }, 
       refetchQueries: ['getEvent'], 
       }); 
       // how do I trigger the data.loading = true like it does during the initial fetch? 
      } 
     }> 

答えて

0

Apollo Reactのドキュメントはこれではあまり良くありませんが、改善のためにopen issueがあります。

data.loadingプロパティを見るのではなく、data.networkStatusを使用します。再取得中に4に変更されます(networkStatus values)。

しかし、この値を更新するには、クエリオプションでtruenotifyOnNetworkStatusChangeオプションを設定する必要があります。リアクトgraphql高次の成分を使用して

が、これは次のようになります。また

var myQuery = gql` 
    query MyQuery { 
     ... 
    } 
`; 

var myComponentWithData = graphql(myQuery, { 
     options: { 
      notifyOnNetworkStatusChange: true 
     } 
    } 
)(MyComponent); 
+0

、私はちょうどあなたが 'notifyOnNetworkStatusChangeのオプションを追加したときに気づい:' data.loading'プロパティがオンに更新を行いますtrue'を再フェッチする。 – Patrick

関連する問題