Вы можете написать блок if-else внутри componentDidMount()
, который сначала проверяет, существует ли 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.
}