2017-03-12 9 views
0

今、私は次のようにHOC withApolloを使用しています。そのコンポーネントで、その後ReactアプリケーションでApollo Clientを渡すための推奨される方法は何ですか?

export default connect(mapStateToProps, mapDispatchToProps)(withApollo(withData(Browse))); 

render() { 
    const { client } = this.props; 
    <Button onPress={() => searchInterestsTab(client)} /> 

そのコンポーネント外:

export const searchInterestsTab = (client) => { 

^が、非常にこれが得る発見しています私のコンポーネントからすべての外部関数にそれを渡す必要があります。


は、私は使用できませんでした。その後、

const apolloClient = new ApolloClient({...}) 
export default apolloClient; 

import apolloClient from './apolloClient'; 

どこでも?

答えて

0

一種のでそれを使用することが可能でなければなりません:あなたはusage documantationを見れば、あなたはそれを使用することができていることがわかり

import apolloClient from './apolloClient'

import ApolloClient, { addTypename } from 'apollo-client'; 
 

 
const createApolloClient = options => { 
 
    return new ApolloClient(Object.assign({}, { 
 
     queryTransformer: addTypename, 
 
     dataIdFromObject: (result) => { 
 
     if (result.id && result.__typename) { 
 
      return result.__typename + result.id; 
 
     } 
 
     return null; 
 
     }, 
 
    }, options)) 
 
}; 
 

 
export default createApolloClient;

をしてindex.jsで、それがこのように使用されていますので、どこかで最も可能性のあなたindex.jsすでに

const apolloClient = new ApolloClient({...})

マイアポロクライアントは次のようにインスタンス化される必要があります:

... 
 

 
const client = createApolloClient({ 
 
    networkInterface: networkInterface, 
 
    initialState: window.__APOLLO_STATE__, 
 
    ssrForceFetchDelay: 100, 
 
}); 
 

 

 
.... 
 

 

 
export { 
 
    client, 
 
    ... 
 
};

+0

ええ、私にはもっと意味があります。では、HOCラッパー 'withApollo'のポイントは何ですか? >。< – kayla

+0

あなたの[お気に入りのフレームワーク](https://github.com/apollographql/apollo-client#learn-how-to-use-apollo-client-with-your-favorite-framework)でapolloクライアントを使用する場合は、ほとんどの場合、HOCを使用しません。いくつかの特殊なケース(例えば、あなたが小道具のような突然変異を持っているコンポーネントを持っている場合のみ)。あなたはHOCを介して突然変異を呼び出すことができます –

関連する問題