关于react-router v4 官方示例中 Link 中 to 作为对象里的 state

发布于 2022-09-06 03:38:58 字数 636 浏览 9 评论 0

最近在看 react-router v4api ,在 https://reacttraining.com/react-router/web/api/Link/to-object 中看到一段代码,

<Link to={{
  pathname: '/courses',
  search: '?sort=name',
  hash: '#the-hash',
  state: { fromDashboard: true }
}}/>

这里的state: { fromDashboard: true },我完全没看懂,
百度了很多,没有找到,
刚开始以为是点击这个 Link 时会改变 state 做了尝试,发现并不是,
我还看了 Link 的源码,也没有发现什么奥秘,
所以由于好奇心的驱使,我提出了这个问题,
想知道这个state到底是什么意思,或者是举例有错误?
求解答。

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

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

发布评论

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

评论(3

遗忘曾经 2022-09-13 03:38:58

原生的history.pushState()方法可以传入一个 state,有些浏览器会把它保存起来,重启浏览器的时候恢复 state:

state object — The state object is a JavaScript object which is associated with the new history entry created by pushState(). Whenever the user navigates to the new state, a popstate event is fired, and the state property of the event contains a copy of the history entry's state object.

The state object can be anything that can be serialized. Because Firefox saves state objects to the user's disk so they can be restored after the user restarts the browser, we impose a size limit of 640k characters on the serialized representation of a state object. If you pass a state object whose serialized representation is larger than this to pushState(), the method will throw an exception. If you need more space than this, you're encouraged to use sessionStorage and/or localStorage.

https://developer.mozilla.org/en-US/docs/Web/API/History_API

假扮的天使 2022-09-13 03:38:58

state的内容都是自定义的。你可以在Link的pathname对应的Route的render或者children里面中的location对象拿到你自定义的state,然后做什么完全取决你

森林迷了鹿 2022-09-13 03:38:58

传参用的吧,去看下location

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