Я знаю, что есть несколько вопросов по этому поводу, но я не могу заставить его работать. Когда я использую useHistory () в компоненте панели поиска, я получил неопределенный в истории. То же самое, когда я пытался получить доступ к history.pu sh через реквизит, потому что панель поиска отсутствует в Routes.jsx. Как я могу программно перейти на другой маршрут из компонента, которого нет в списке маршрутов?
Это мое приложение. js
function App () {
return (
<ItemsProvider>
<div className="App">
<Header logo={Logo} />
<main className="container">
<Routes />
</main>
</div>
</ItemsProvider>
);
}
Routes.jsx
export default props => {
return (
<BrowserRouter>
<Switch>
<Route exact path="/items/:id" component={Item} />
<Route path="/items" component={Results} />
</Switch>
</BrowserRouter>
);
};
Searchbar.jsx
export default props => {
let history = useHistory();
const handleSubmit = e => {
e.preventDefault();
history.push(`/items?q=${document.getElementById('searchBar').value}`);
};
return (
<form className="search col-9" onSubmit={handleSubmit}>
<input
type="text"
id="searchBar"
placeholder="Nunca deixe de buscar"
className="search-bar"
/>
<button className="search-bar--submit">
<img src={SearchIcon} alt="Search Icon" />
</button>
</form>
);
};