我正在开发一个反应应用程序,我使用React-router和connect-react-router在 redux 中持久化路由信息。我正在使用我的 redux 存储配置中的 history 包提供的CreateBrowserHistory函数将历史记录注入到 connected-react-router 中。
此外,从我的列表组件之一,我通过
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>