将所有 Meteor 用户传递给 Apollo 上下文
Posted
技术标签:
【中文标题】将所有 Meteor 用户传递给 Apollo 上下文【英文标题】:Pass all Meteor users to Apollo context 【发布时间】:2019-01-15 14:45:51 【问题描述】:可以使用ApolloLink 将当前用户传递给上下文。但是是否可以对所有用户的列表执行相同的操作? 我想将我的应用程序中的所有用户传递给上下文(如果可能),以便我可以通过上下文访问它。
【问题讨论】:
【参考方案1】:是的。 context
参数可以是一个异步函数,它可以从数据库中获取任何你想要的东西:
https://www.apollographql.com/docs/apollo-server/api/apollo-server.html#constructor-options-lt-ApolloServer-gt
【讨论】:
这是真的。但我意识到它会覆盖使用ApolloClient
传递的任何内容。在我的 Meteor 应用程序中,我使用 ApolloClient
将登录的用户传递给上下文。如果我在createApolloServer
中定义自定义上下文,ApolloClient
中定义的用户将不再可用。一个解决方案是在上下文中定义当前用户,但我也发现在createApolloServer
中使用 this.userId 或 Meteor.userId() 都返回 undefine。
您可能会发现更新到 meteor/apollo
的新版本 (3.*) 会有所帮助,它具有不同的 API:apollographql.com/docs/react/recipes/meteor.html#Server以上是关于将所有 Meteor 用户传递给 Apollo 上下文的主要内容,如果未能解决你的问题,请参考以下文章
在 Apollo Mutation 中调用 Meteor 方法
如何将 Redux Store 中的 Props 传递到 Apollo GraphQL 查询中
Graphql,react-apollo如何在加载组件状态时将变量传递给查询