首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以将由wix/ wrap本机导航创建的根组件包装在ApolloProvider组件中吗?

我可以将由wix/ wrap本机导航创建的根组件包装在ApolloProvider组件中吗?
EN

Stack Overflow用户
提问于 2016-10-15 20:32:01
回答 2查看 1.3K关注 0票数 3

我正在将Meteor的阿波罗客户端与wix/react本机导航结合使用,我想知道是否有可能将Navigation.startSingleScreenApp创建的根组件封装到ApolloProvider组件中?我尝试过将Navigation.startSingleScreenApp放入另一个组件的呈现方法中,并将其封装在ApolloProvider中,但这没有起作用。有没有人在一起使用过这两种东西?

我想知道在Navigation.registerComponent中注册的每个组件是否都有自己的独立根组件,如果是这样的话,我必须将每个组件封装在ApolloProvider中,可能会使用更高级的组件吗?我很感激任何人能提供的任何想法或示例代码!提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-16 20:19:13

我已经使用了一个高阶组件来包装每个注册组件。我所使用的临时代码如下:

代码语言:javascript
运行
复制
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>
      );
    }
  }
}

只需导入上面的函数并传递要包装到其中的组件。

票数 2
EN

Stack Overflow用户

发布于 2017-09-12 13:45:16

我为这个问题找到的最简单的解决方案是将ApolloClient传递到registerComponent函数中,如下所示:

代码语言:javascript
运行
复制
Navigation.registerComponent('pm.SplashScreen', () => SplashScreen, store, Provider, {client});

ApolloClient必须被称为“客户端”,因为react本机导航在您传递的对象上使用了一个扩展运算符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40063913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档