ReactJS: Запрещает href заменять хэш-значение URL (токен) - PullRequest
1 голос
/ 30 марта 2019

Ну, это неловко ... как ни странно, я не смог обернуть голову вокруг этого якобы простого решения. По сути, веб-приложение генерирует токен доступа и токен обновления после аутентификации при входе в систему из Spotify API, и само по себе оно работает нормально и выдает следующее:

локальный: 3000 / # access_token = BQCs .. & refresh_token = AQCC ...

Однако у меня есть кнопка, т. Е.

 <Button href="#main1"> Foo? </Button>

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

Я пробовал следующие методы, такие как:

  • реализует event.preventDefault(), который запускается обработчиком onClick ()
  • реактивно-прокручиваемый якорь с goToAnchor('section1', false)
  • логическое значение, т. Е. loggedIn: token ? true : false, где оно условно отображает компоненты при условии, что обнаружены токены, и window.location='localhost:3000/#access_token=' + access + '&refresh_token=' + refresh, если их нет
  • реагирует роутер с <Link to={params.access_token}>

К сожалению, первые два из этих методов имели схожий начальный результат из-за своей природы полного удаления хэша URL, поэтому его оставляли бы с:

локальный: 3000

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

Каков наилучший подход к решению этой проблемы? Как эффективно хранить токены доступа в хэше URL? Как всегда, любая помощь и предложения высоко ценятся. Спасибо.

1 Ответ

0 голосов
/ 02 апреля 2019

Наконец-то был найден подход для перехода к определенному компоненту без каких-либо хлопот по закреплению ссылки и / или изменению хеша URL: https://www.npmjs.com/package/react-scroll

Обратите внимание, что этот тип подхода будет работать только на одностраничных веб-приложениях. Это в основном позволяет плавно переходить от одного компонента к другому. Я также посмотрел на React-Spring, но он не сработал для меня после того, как я возился целый день, с другой стороны, ответная прокрутка сработала для меня.

...