Энтер, то чтобы переход осуществился на урл путь`/search?q=${query}`?
const [inputSearch, setInputSearch] = useState('');
const search = (query) => {
// go to `/search?q=${query}` ???
};
const handleChangeInputSearch = (event) => {
if (event.key === 'Enter') {
search(inputSearch)
} else {
setInputSearch(event.target.value);
}
};
а какой роутер? если react-router history.push можно сделать
Роутер ведь нужен
я пробовал так, но почему-то переход не осуществляется import { Link, useHistory } from 'react-router-dom'; const Header = () => { const [inputSearch, setInputSearch] = useState(''); let history = useHistory(); const search = (query) => { history.push(`/search?q=${query}`); };
а в адресной строке меняется?
нет. почему-то на Enter не реагирует. здесь неправильно что-то может? const handleChangeInputSearch = (event) => { if (event.key === 'Enter') { console.log('Enter press!!!') search(inputSearch) } else { setInputSearch(event.target.value); } };
на какой евент вешается? onKeyDown?
нет. у меня так <input onChange={handleChangeInputSearch} value={inputSearch} placeholder="Search" type="text" />
у события change нет key. то есть нет event.key можно попробовать на onKeyDown навесить отдельно
Обсуждают сегодня