#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...</>
}
это вышеуказанное условие будет выполняться до выполнения условия