как предотвратить сброс объекта location при перезагрузке reactjs

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я использую ссылку для повторного прямого вызова другого компонента. Что-то вроде этого

 <Link to={{ pathname: "/app/"   app.appId, appDetail: { app: app } }}>>
  

При вызове path /app/:AppID он вызывает компонент AppDetails. И я получаю объект appDetail в объекте location.

Но при перезагрузке маршрута /app/:AppID этот appDetail в объекте location становится неопределенным. Итак, как я могу предотвратить это, чтобы при перезагрузке /app/:AppID этот appDetail из объекта location не становился неопределенным

Ответ №1:

Существует state свойство для передачи данных другому компоненту. Итак, вы можете сделать что-то вроде этого:

 <Link to={{
  pathname: "/app/"   app.appId,
  state: { appDetail: { app: app }}
}}>
  

И получить appDetail в другом компоненте:

 const { appDetail } = this.props.location.state;
  

Комментарии:

1. Я использовал localStorage, который также работает. Но это решение для использования состояния в ссылке

Ответ №2:

есть много способов контролировать это поведение, вот один из них: попробуйте поместить объект location в условие if, например:

 if(!location) {
  return <>Loading...</>
}
  

это вышеуказанное условие будет выполняться до выполнения условия