2017-02-03 84 views
0

所以我使用apollo客户端添加了一个突变的对象列表。假设我有一个活动,并且我添加了参与者,并且我正在使用refetchQueries在参与者详细信息屏幕上获取刷新事件。不幸的是,我在这次重新访问过程中没有获得data.loading == true的状态,使得用户可能会不断重复点击该加入参与者按钮。随着apollo客户端如何设置突变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。在重新提取期间它将更改为4networkStatus values)。

但是,为了使此值更新,您还需要在查询选项中将notifyOnNetworkStatusChange选项设置为true

使用阵营graphql高阶组件,这看起来像:

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

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

另外,我刚才注意到,当你添加的选项'notifyOnNetworkStatusChange:TRUE'了'data.loading'财产不更新上重新提取。 – Patrick