React 中路由跳转之后无法访问某个 cookie 的问题

发布于 2022-09-12 22:36:18 字数 1053 浏览 31 评论 0

// App.js
render() {
  return (
    <Switch>
      <Route exact path="/" component={A} />
      <Route path="/index" component={B} />
    </Switch>
  )
}

// A.jsx
import Cookies from 'universal-cookie'

handleClick = () => {
  const cookies = new Cookies()
  cookies.set('a', 'a', { path: '/index' })
  this.props.history.push('/index')
}

render() {
  return <Component onClick={this.handleClick} />
}

// B.jsx
import Cookies from 'universal-cookie'

componentDidMount() {
  const cookies = new Cookies()
  console.log(cookies.get('a')) // undefined
}

简化后的代码就是这样,路由 / 匹配到页面 A,我在页面 A 触发点击事件之后往 cookie 里塞了一个 a,然后跳转到了路由 /index,但是我没办法在页面 BcomponentDidMount 中访问到这个 a。在 Chrome 的 devtool 中的确可以看到这个 cookie a 保存成功了,而且如果我在 /index 做一次刷新,那么在 componentDidMount 中就可以访问到这个 a 了。
问题是怎么样才能在不做刷新的前提下直接访问到这个 a 呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温折酒 2022-09-19 22:36:18

path 应该以 “/” 结尾,试试

 cookies.set('a', 'a', { path: '/index/' })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文