React Router v3
React Router уже анализирует местоположение для вас и передает его вашему RouteComponent в качестве реквизита. Вы можете получить доступ к части запроса (после? В URL) через
this.props.location.query.__firebase_request_key
Если вы ищете значения параметров пути, разделенные двоеточием (:) внутри маршрутизатора, они доступны через
this.props.match.params.redirectParam
Это относится к поздним версиям React Router v3 (не знаю, какие именно). Сообщалось, что использовались более старые версии маршрутизатора this.props.params.redirectParam
.
React Router v4 и React Router v5, общий
React Router v4 больше не анализирует запрос, но вы можете получить к нему доступ только через this.props.location.search
. По причинам см . Ответ nbeuchat .
Например, с импортированной библиотекой qs, как qs
вы могли бы сделать
qs.parse(this.props.location.search, { ignoreQueryPrefix: true }).__firebase_request_key
Другой библиотекой будет строка запроса . Посмотрите этот ответ, чтобы узнать больше о разборе строки поиска. Если вам не нужна IE-совместимость, вы также можете использовать
new URLSearchParams(this.props.location.search).get("__firebase_request_key")
Для функциональных компонентов вы бы заменили this.props.location
на ловушку useLocation . Обратите внимание, что вы можете использовать window.location.search
, но это не позволит запускать рендеринг React при изменениях. Если ваш (нефункциональный) компонент не является прямым потомком, Switch
вам нужно использовать withRouter для доступа к любому из реквизитов, предоставленных маршрутизатором.
генеральный
предложение nizam.sp сделать
console.log(this.props)
будет полезно в любом случае.