Передача состояния по умолчанию для ссылки, когда пользователь непосредственно переходит на страницу - PullRequest
1 голос
/ 24 апреля 2019

В моем приложении GatsbyJs я передаю параметр в состоянии через компонент <Link/>.Этот параметр в состоянии указывает, какой контент отображать, когда пользователь переходит на страницу.

<Link
  to={`/${link}`}
  state={{ dataRef: dataToDisplay }}
  key={j}
>
  {heading}
</Link>

Это нормально работает.

Однако, когда пользователь непосредственно переходит на страницу (вставляетадрес в адресной строке), я получаю сообщение об ошибке: TypeError: _this.props.location.state is null, потому что состояние пусто.

То, что я пытался:

На моем page компоненте,Я попытался передать default value в this.props.location.state в виде:

const { state = { dataRef: "foo" }} = this.props.location;

Однако это тоже не сработало и вернуло ту же ошибку.Поэтому мой вопрос заключается в том, как установить свойство dataRef по умолчанию в пределах состояния, чтобы при вводе пользователем адреса страницы непосредственно в адресной строке страница загружалась с параметрами по умолчанию.

Спасибо

1 Ответ

1 голос
/ 25 апреля 2019
const { state = { dataRef: "foo" }} = this.props.location;

Это сработало бы, если бы state было undefined, но, поскольку оно null, оно все равно будет null.Вы пробовали что-то подобное?

const state = this.props.location.state || { dataRef: "foo" }
...