#javascript #reactjs #react-hooks #dom-events
#javascript #reactjs #реагирующие хуки #dom-события
Вопрос:
Я новичок в React (хотя я думаю, что это может быть проблемой JS), и я следую руководству, но я не уверен, как ‘e’, который представляет onChange
событие, передается функции. В Javascript, я думаю, я бы обычно написал что-то вроде onchange="updateSearch(event);"
для передачи события. Вот код:
const [search, setSearch] = useState(''); //state
const updateSearch = (e) => { //here the onChange event is passed through
setSearch(e.target.value);
console.log(search);
}
return(
<input className="search-bar" type="text" value={search} onChange={updateSearch}/>
);
Комментарии:
1. Это не то, что происходит только в react. Вот как работают прослушиватели событий в javascript. Всякий раз, когда добавляется прослушиватель событий, вам не нужно передавать событие явно.
2. @rishabh0211 Куда добавлен прослушиватель событий? Вы имеете в виду, что onChange передаст объекту события любое его значение?
3. Да. onChange — это обработчик событий, который возвращает синтетический объект события в качестве аргумента. JavaScript позволяет нам отслеживать изменение значения входных данных, предоставляя атрибут
onchange
. Версия обработчика событий onchange в React такая же, но в верблюжьей оболочке.
Ответ №1:
Свойство target event возвращает элемент, который вызвал событие, и извлекает значение, связанное с ним.
Таким образом, значение ={search} — это то, что передается в setSearch (например,target.value)
Комментарии:
1. Да, я был больше смущен тем, как само «событие» передается в функцию. Как моя функция поиска обновлений узнает, что такое «e»? Поскольку я не передавал его во входном теге.