【问题标题】:Different cookie values returned from different components不同组件返回的不同cookie值
【发布时间】:2019-03-20 21:53:22
【问题描述】:

我正在尝试从 React 应用程序中的子组件检索存储在 cookie 中的值,并在我的 Redux store.js 文件和我的根组件中检索相同的值。

store.js 中的值与 Cookie 存储中存储的值完全对应,并且由于某种原因,store.js 中返回的值与根组件中返回的值不同,根组件中返回的值与子组件。

发生这种情况有什么原因吗?

我没有一个很好的代码示例来演示这个,但我创建了这个codesandbox 来尝试解释我的观点。

谢谢。

【问题讨论】:

  • 你使用了错误的方法。使用 Redux,您的所有状态数据都应该存储在一个地方 - Redux 的存储区。并且所有组件都应该只访问该存储,它们不应该直接读取 Cookie。如果要在 Cookies 中持久化状态,则必须使用中间件。

标签: javascript reactjs cookies redux


【解决方案1】:

你应该为cookie设置一个路径/,否则它可能会被另一个创建

Cookies.set("foo", "value", { expires: 7, path: "/" });

【讨论】:

  • 我刚刚添加了它,但仍然没有。我仍然在不同的文件中得到不同的值。
  • 您是否尝试过将 cookie 服务与组件分开?如果只有一项服务负责整个 cookie 逻辑,那么您将不再有这个问题
  • 这正是我正在做的,但我需要检查子组件内 Cookie 中的条件。但目前,所有 Cookie 逻辑都在 Redux store.js 中完成,前提是有办法告诉组件来自 store.js 的 Cookie 值。我已经尝试过调度操作,但问题仍然存在。 store.js 中的值在其他文件之前获取原始值。
猜你喜欢
  • 1970-01-01
  • 2017-08-28
  • 2016-04-10
  • 1970-01-01
  • 2023-04-03
  • 2021-10-08
  • 1970-01-01
  • 2018-12-08
  • 2014-03-29
相关资源
最近更新 更多