我无法在创建导航项时使用client
。
1。我创建了Apollo的东西并返回
<ApolloProvider client={client}>
<AppContainer />
</ApolloProvider>
2。 AppContainer
在单独的文件中
createAppContainer(AppDrawerNavigator)
3。 AppDrawerNavigator
在单独的文件中
createDrawerNavigator(
{
HomeStack: {
screen: HomeStackNavigator
},
...drawerRoutes
},
{
initialRouteName: 'HomeStack',
drawerPosition: 'right'
}
);
4。 drawerRoutes
是硬编码对象
const drawerRoutes = {
First: {
screen: IndexStackNavigator
},
Second: {
screen: IndexStackNavigator
}
};
现在,我想在查询Apollo客户端后动态创建drawerRoutes
。
但是我没有设法访问createDrawerNavigator
内部的客户端。
另外,我无法将某些内容传递给createDrawerNavigator
。有一个棘手的方法吗?
最好的做法是在步骤1.中创建drawerRoutes
,而不是将路由对象向下传递到步骤3.。
当我将Apollo客户端创建,React Navigation Drawer创建和所有内容都放在一个文件中时,它正在工作。但是文件变得混乱了。
有人可以帮忙吗?您需要更多信息吗?
答案 0 :(得分:0)
如果我理解正确,则只需导出apollo客户端,然后将其导入到需要的位置即可,例如:
// ApolloClient.js
export const client = new ApolloClient({
...
});
// WhereYouNeedClient.js
import { client } from './ApolloClient'
...
答案 1 :(得分:0)
我还没有检查它,但是看来ApolloConsumer
是访问client
子元素中的ApolloProvider
的方式:
https://www.apollographql.com/docs/react/essentials/queries/#manually-firing-a-query