Я использую панель поиска материалов в заголовке моего приложения и пытаюсь перейти на страницу '/ search' на localhost onRequestSearch.Сам код панели поиска прост:
<SearchBar
onChange = {() => console.log('onChange')}
onRequestSearch = {() => this.setRedirect()}
style = {{ margin: '0 auto', maxWidth:800}}/>
Теперь я попытался реализовать функцию setRedirect несколькими способами, но безуспешно.Сначала я просто попытался:
setRedirect() {
this.props.history.push('/search');
}
Но это выдает ошибку Undefined не является объектом (оценивая this.props.history).У меня есть маршрут, настроенный для страницы "/ search" в моем главном приложении.Я также попытался использовать Redirect:
constructor(props) {
super(props);
this.state = {
redirect = false
}
}
setRedirect() {
this.setState({
redirect: true
}
}
И в методе рендеринга:
render() {
if(this.state.redirect) {
return (
<Router>
<div>
<Redirect push to="/search"/>
<Route path="/search" exact strict component={Search}/>
</div>
</Router>
);
}
else {
// return other stuff
}
}
Это просто приводит к тому, что вся страница становится пустой, когда я что-то печатаю в строке поиска и нажимаю ввод,Адрес в браузере также НЕ меняется на «/ search».Не уверен, что я делаю не так.Просто попробуйте перейти на другую страницу, когда пользователь вводит текст в строку поиска и нажимает клавишу ввода.Любые предложения будут с благодарностью.Заранее спасибо!