0

我正在开发一个反应应用程序,我使用React-routerconnect-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>

4

0 回答 0