【问题标题】:Caching User after Authenticating with apollo使用 apollo 进行身份验证后缓存用户
【发布时间】:2018-11-21 09:22:14
【问题描述】:

我对 react-apollo 还是很陌生,但不知道如何解决这个问题。我正在验证具有突变的用户,但想访问相同的用户对象,该对象再次在其他组件中返回(实时导航栏,呈现按钮选项,或登录后的配置文件按钮)。我应该每次需要时都获取当前登录的用户吗?即

query GetUser {
 id
 name
 role {
  name 
 }
 dob
}

在每个需要它的组件的末尾附加这个?我不确定最好的方法是否可能是在登录一次后缓存它而不是这个即使那么你如何专门缓存它?我知道它也继承了它的缓存,所以它不像我在获取时有冗余,但我可能在代码中。你们都采取了哪些方法。

【问题讨论】:

  • 您可以使用 graphql hoc 或查询组件从任何组件触发查询。如果使用与之前相同的输入触发查询,apollo 将从缓存中返回数据。
  • 今天看了很多视频也觉得有道理,我想我可以创建一个在多个组件中使用的片段?这似乎是我认为最简单的路径。

标签: reactjs graphql apollo react-apollo


【解决方案1】:

在 react 应用程序中保存用户数据以进行身份​​验证,您必须将用户数据保存在存储中,例如 local storage,并存储到您的应用程序的全局状态,例如 reduxmobx,以便从整个应用程序访问。

我建议你使用redux

注意:

每次启动应用程序时,您都必须再次将数据从存储存储到全局状态。

你也可以使用apollo-cache-persist,但我没试过!

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 2018-08-18
    • 2020-01-03
    • 1970-01-01
    • 2013-03-11
    • 2018-06-08
    • 1970-01-01
    • 2010-10-02
    • 2014-02-07
    相关资源
    最近更新 更多