如何解决CreateBrowserHistory 在页面刷新 Chrome
我正在开发一个 React 应用程序,我使用 React-router 和 connect-react-router 在 redux 中持久化路由信息。我正在使用我的 redux 存储配置中的历史包提供的 CreateBrowserHistory 函数将历史记录注入连接的反应路由器。
此外,从我的列表组件之一,我通过使用导航到详细信息组件
this.props.history.push({ pathname: details-path,state: { someRequiredState })
在列表组件中。此导航工作正常。
但是,在详细信息页面刷新浏览器并检查当前历史记录(this.props.history)时,我看到状态未定义。我的假设是,即使在页面刷新之间,浏览器也会维护历史记录。在页面刷新时检查 CreateBrowserHistory 函数输出时,我看到状态未定义。
由于这种未定义的状态,细节组件出错了。有没有办法让这个状态在默认情况下保持不变。我不想走在会话或本地存储中存储状态的路线,因为历史 API 已经在做同样的事情。
更新:在以下代码段中,即使在相同版本的 Chrome(以及 firefox)上刷新页面后,状态仍会保留
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="5">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Test</title>
</head>
<body>
<script>
if (!history.state) {
console.log("first time load");
}
history.pushState("reload",null);
console.log(history.state);
</script>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。