Я пытаюсь применить ответ, данный в этом посте Как разобрать строку запроса в React Router
, но он не работает.
Это мой URL:
`/api/lexemes?searchTerm=${searchTerm}&optionValue=${optionValue}`
Во-первых, ничего не отображается, когда я запускаю этот код:
let search = window.location.search;
let params = new URLSearchParams(search);
let foo = params.get('searchTerm');
console.log(foo);
, а также этот:
let url = this.props.location.search;
let params = queryString.parse(url);
console.log(params);
Когда я делаю:
console.log(this.props);
Консоль показывает Location с поиском = ""
Обратите внимание, что я использую компоненты класса, она работает только с функциональными? Если бы вы могли сказать мне, как сделать это с классным компонентом, который был бы великолепен.
Мои пути в приложении. js теперь выглядят так:
<Switch>
<Route exact path="/" component={Main} />
...
</Switch>
Что бы я хотел иметь:
<Route exact path="/:search/:option" component={Main} />
Это мой топор ios вызов в Main. js
handleSubmit = (searchTerm, optionValue) => {
axios
.get(`/api/lexemes?searchTerm=${searchTerm}&optionValue=${optionValue}`, {
})
.then(
(res) => {
if (Array.isArray(res.data) && res.data.length === 0) {
this.setState({
noData: 1,
});
} else {
this.setState({
words: res.data,
currentScreen: "WordItem",
});
}
},
(error) => {
alert("handleSubmit error " + error);
}
);
};