2017-01-16 10 views
1

私のAppコンポーネントにreloadボタンがあります。 reloadをクリックすると、基本的にgraphqlクエリを再起動することで再フェッチが実行されます。再取得しようとするとApolloクライアントのサーキュラーエラー

私が現在リロードを実行しているのは、ユーザーがreloadをクリックしたときにApollosの再フェッチ機能を使用する方法です。私はリロードをクリックすると、ただし、次のエラーが発生します。ここでは

enter image description here

は私のgraphql HOCコードです:ここで

const mapApiToProps = graphql(ASSETS_QUERY, { 
    props: ({ ownProps, data }) => { 
    return { 
     assets: data.assets, 
     isLoading: data.loading, 
     handleReload: data.refetch // Doesn't currently work 
    } 
    } 
}); 

は私のクエリです:ここでは

export const ASSETS_QUERY = gql` 
    query getUserAssets { 
    assets { 
     body 
     id 
    } 
    }` 

は私のコンポーネントでありますコード:

class App extends Component { 
    render() { 
    const {handleReload, isLoading, assets} = this.props; 
    return (
     <div> 
     <ReloadBtn handleReload={handleReload} isLoading={isLoading} /> 
     <AssetList assets={assets} /> 
     </div> 
    ) 
    } 
} 

そして最後に、私の接続:

export default compose(
    connect(mapStateToProps, mapDispatchToProps), 
    mapApiToProps 
)(App); 

エラーが発生した理由を任意の洞察力?

答えて

0
return { 
    assets: data.assets, 
    isLoading: data.loading, 
    handleReload:() => { data.refetch() } 
} 
+0

yoirの回答を説明してください。 – Blackbam

+0

OPとはどのように違いますか?あなたはラムダを追加しましたが、メソッドはとにかく呼び出されていました。 – Alpha

+0

このコードは質問に答えるかもしれませんが、_how_および/または_why_に関する追加の[context](https://meta.stackexchange.com/q/114762)を提供することで、問題を解決することで回答の長期的価値が向上します。 –