2017-02-03 23 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

相關問題