我正在将Meteor的阿波罗客户端与wix/react本机导航结合使用,我想知道是否有可能将Navigation.startSingleScreenApp创建的根组件封装到ApolloProvider组件中?我尝试过将Navigation.startSingleScreenApp放入另一个组件的呈现方法中,并将其封装在ApolloProvider中,但这没有起作用。有没有人在一起使用过这两种东西?
我想知道在Navigation.registerComponent中注册的每个组件是否都有自己的独立根组件,如果是这样的话,我必须将每个组件封装在ApolloProvider中,可能会使用更高级的组件吗?我很感激任何人能提供的任何想法或示例代码!提前谢谢。
发布于 2016-10-16 20:19:13
我已经使用了一个高阶组件来包装每个注册组件。我所使用的临时代码如下:
import React from 'react';
import appClient from '../store/apollo';
import { ApolloProvider } from 'react-apollo';
export default function apolloProviderHOC(WrappedComponent){
return class PP extends React.Component {
render() {
return (
<ApolloProvider client={appClient}>
<WrappedComponent {...this.props}/>
</ApolloProvider>
);
}
}
}只需导入上面的函数并传递要包装到其中的组件。
发布于 2017-09-12 13:45:16
我为这个问题找到的最简单的解决方案是将ApolloClient传递到registerComponent函数中,如下所示:
Navigation.registerComponent('pm.SplashScreen', () => SplashScreen, store, Provider, {client});ApolloClient必须被称为“客户端”,因为react本机导航在您传递的对象上使用了一个扩展运算符。
https://stackoverflow.com/questions/40063913
复制相似问题