繁体   English   中英

从 ApolloClient 的请求中获取 clientState 数据以用于 operation.setContext react apollo graphql

[英]get clientState data from inside ApolloClient's request for use in operation.setContext react apollo graphql

React - Apollo - GraphQl 大家好,代码是:

const client = new ApolloClient({
  uri: "http://someurl.com/graphqlserverendpoint/",
  fetchOptions:{
    credentials : "include" 
  },
  request : operation => { 
    // i want to access needed data from here
  const neededDataFromClientState = "QueryDataFromHere!!!"
  const token = localStorage.getItem('authToken') || "" ; 
    operation.setContext({
      headers: {
        Authorization : `JWT ${token}` 
      }
    })

  },
  clientState : {  
    defaults : { 
      isLoggedIn : !!localStorage.getItem('authToken') ,  
      neededData : "the data I want get"

    }
  }
});

我想从请求操作中访问名为 requiredData 的数据

任何机构想帮助我? 谢谢..

您没有提供导入 - 您的ApolloClient来自apollo-boost项目,这就是为什么它的配置选项与从apollo-client导入的标准不同。

过时

Apollo Boost 项目现已退役,因为 Apollo Client 3.0 提供了类似的简单设置。 我们建议删除所有apollo-boost依赖项并根据需要修改您的ApolloClient构造函数。

Apollo boost一个“简单的入门”项目,旨在隐藏一些配置复杂性([多几行] 缓存和链接配置)。

解决方案

使用如正常的,广为人知的身份验证方法的文档和教程很多像这样

localStorage用于保持用户登录页面/浏览器刷新。

其他数据可以通过上下文在链接之间传递 - 数据可以像本例中的token一样完全存储在外部。 其他(在链之后,顺序很重要)link[-s] 可以使用operation.getContext().token而不是从 localStorage 从上下文读取数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM