如果刷新,如何保留props.location.state值

时间:2018-12-27 07:22:46

标签: reactjs state react-props

首次进入包含this.props.location.state的页面时,会获取所有状态详细信息,但是刷新该页面时,我们只会获取未定义状态。即使刷新,如何保留props.location.state的值。
道具控制台刷新如下

logged props: undefined

2 个答案:

答案 0 :(得分:0)

我认为您正在使用HashRouterbrowserRouter来保存数据。

答案 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.
}