Использование History API для хранения состояния - PullRequest
0 голосов
/ 07 мая 2020

При выходе из моего компонента я хотел бы сохранить некоторую информацию о состоянии в объекте-истории-состоянии браузера, чтобы я мог восстановить ее, если вернусь назад. Я бы не хотел использовать службу для хранения этой информации, поскольку я не хочу восстанавливать эти свойства, если я «только что» перейду к своему компоненту - только если я использую кнопку возврата в браузере (или location.back()).

Я думал о том, чтобы сделать что-то подобное в компоненте, от которого выполняется переход:

ngOnDestroy(): void {
  let state: any = this.location.getState();
  this.location.replaceState("", undefined, { ...state, selectedTabIdx: this.selIdx });
}

и следующее в том же компоненте:

ngOnInit(): void {
  let state = this.location.getState();

  if (state.selectedTabIdx !== undefined)
    this.selIdx = state.selectedTabIdx;
}

Есть ли способ выполнить sh это? Приведенный выше код не работает (это скорее попытка выдать желаемое за действительное), поскольку состояние, которое я получаю ngOnInit, не содержит свойства selectedTabIdx.

Я думаю, что состояние истории -object было бы идеальным местом для хранения этой информации, поскольку это должно быть только для этого шага в истории, и, возможно, вы могли бы иметь один и тот же компонент несколько раз в своей истории и с разными вариантами выбора et c.

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