Невозможно получить строку запроса: путь заполнен, но поиск пуст - PullRequest
0 голосов
/ 29 марта 2020

Я использую реагирующий роутер + редукс + редукс саги. Я получаю доступ к объекту местоположения, переданному в качестве реквизита моему компоненту, где я пытаюсь получить часть URL-адреса строки запроса.

Однако параметр поиска местоположения всегда пуст. Тем не менее, путь к файлу заполняется следующим образом:

{pathname: "/view/energy?latitude=34.06012&longitude=-118.26997&zoom=11", search: "", hash: "", key: "wsbbq0"}

Любая помощь или советы отладки приветствуются. Спасибо!

Версии Libs:

"react-redux": "^7.2.0",
"react-router-dom": "^5.1.2",
"redux-saga": "^1.1.3"

Индекс

ReactDOM.render(
   <Provider store={store}>
      <Router>
         <Route path="/" component={App} />
         <Route path="/view/:viewId" component={App} />
      </Router>
   </Provider>,
   document.getElementById('root'));

1 Ответ

1 голос
/ 29 марта 2020

response-router-dom: match

Объект соответствия содержит информацию о соответствии URL-адреса. Объекты соответствия содержат следующие свойства:

  • params - (объект) Пары ключ / значение, проанализированные по URL, соответствующему динамическим c сегментам пути
  • isExact - (логическое значение) ) true, если весь URL был сопоставлен (без завершающих символов)
  • path - (строка) Шаблон пути, используемый для сопоставления. Полезно для построения вложенных s
  • url - (строка) Соответствующая часть URL. Полезно для построения вложенных s

Params - это объект, который вы ищете. props.match.params

Если вы используете функциональный компонент, вы также можете использовать хук useParams, но, поскольку вы выполняете непосредственный рендеринг как маршрут, component App будет иметь match опора уже.

Согласно location в нем должно быть разделить ваш URL на

{
  pathname: "/view/energy",
  search: "?latitude=34.06012&longitude=-118.26997&zoom=11",
  hash: "",
  key: "wsbbq0"
}

, но этого не произошло , ( не уверен почему, придется копать глубже )

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