Как сохранить значение props.location.state, если я обновил - PullRequest
0 голосов
/ 27 декабря 2018

При первом входе на страницу, содержащую this.props.location.state, выводятся все сведения о состоянии, но при обновлении этой страницы мы получаем только неопределенное состояние.Как сохранить значение props.location.state даже при обновлении.консоль реквизита при обновлении, как следует

logged props: undefined

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы можете написать блок 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.
}
0 голосов
/ 27 декабря 2018

Я думаю, что вы используете HashRouter используйте browserRouter, тогда данные будут сохранены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...