Компонент: Строка ввода нового дела
Рядом с TodoApp.jsx
, в папке todo
, создадим файл Field.jsx
.
В созданном файле объявим функцию Field
, которая будет являться нашим компонентом. Сделаем так, что бы она возвращала хоть что-то:
Не забудь импортировать React
и useState
.
В прошлом уроке мы научились пользоваться useState
, давай применим его тут для хранения содержимого поля ввода.
Для ввода текстовых данных есть тег <input>
, у которого есть свойство value
для текста и onChange
для обработки изменений, сродни onClick
для нажатий. Следовательно, наш компонент будет выглядеть как-то так:
Обрати внимание на useState
: теперь изначальное значение — пустая строка.
Осталось понять, что делать в onInputChange
. Нам надо получить новое значение из поля ввода и сохранить его в text
.
События
В прошлом уроке мы узнали о том, что существуют события и их обработчики. В данном случае, у нас есть поле ввода, на котором висит обработчик события change
.
Обработчик события получает первым аргументом (обычно его называют e
, от "event") само событие — всю информацию, которую браузер знает о том, что произошло. В частности, какой элемент на странице породил это событие. Этот элемент доступен нам в объекте e.target
. Его новое значение — в e.target.value
. Это значение нам и предстоит сохранить в text
:
Вуаля! Теперь мы можем редактировать значение поля ввода! Строго говоря, если бы мы ничего не писали, а оставили голый <input type="text"/>
, мы бы тоже смогли редактировать его с клавиатуры, однако теперь мы можем его редактировать из кода нашего компонента!
Кнопка
Осталось совсем немного: создать кнопку, которая будет добавлять дело в список:
Last updated