首次进入包含this.props.location.state
的页面时,会获取所有状态详细信息,但是刷新该页面时,我们只会获取未定义状态。即使刷新,如何保留props.location.state
的值。
道具控制台刷新如下
logged props: undefined
答案 0 :(得分:0)
我认为您正在使用HashRouter
和browserRouter
来保存数据。
答案 1 :(得分:0)
您可以在componentDidMount()
内编写if-else块,该块首先检查this.props.location.state
是否存在。如果确实如此,则将其保存到localStorage / sessionStorage并继续执行您的逻辑。如果没有,请检查localStorage的状态,该状态将在第一次加载期间保存。
在您的componentDidMount()
内:
let routeState
if(this.props.location.state){
localStorage.setItem('routeState', JSON.stringify(this.props.location.state))
routeState = this.props.location.state
} else {
routeState = localStorage.getItem('routeState')
if(routeState) routeState = JSON.parse(routeState)
}
if(routeState){
//use routeState ahead
} else {
//Prompt no data.
}