将所有 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 查询中

将数据从客户端添加到 Apollo?

Graphql,react-apollo如何在加载组件状态时将变量传递给查询

如何将带有参数的 Meteor Spacebars 助手传递给另一个助手属性?

试图将我的数组(props)作为选择器传递给我的发布函数