action
<form>
onClick={handleSubmit}
с кнопкиaction={handleSubmit}
handleSubmit
теперь можно объявить первый параметр, в него будет передаваться объект formData
из отправленной формы.Добавим к инпуту name=”name”
чтобы достать его из formData
и сделаем вывод этого значения в консоль внутри action функции handleSubmit
:
const handleSubmit = (formData) => {
console.log(formData.get("name"));
// ...
}
return (
<form action={handleSubmit} className="card shadow p-3">
{//...}
<input
name="name"
className="form-control mb-3"
value={name}
onChange={(event) => setName(event.target.value)}
/>
Теперь отвяжем input
от состояния, так как его значение мы можем получить через formData
. И также мы увидим сброс значения в input
после отправки формы, так как форму обрабатывает action функция.
Изменения в коде:
function App() {
// const [name, setName] = useState(""); Удаляем
const [error, setError] = useState(null);
const [isPending, setTransition] = useTransition();
const [success, setSuccess] = useState(false);
const handleSubmit = (formData) => {
console.log(formData.get("name"));
// ...
}
return (
<form action={handleSubmit} className="card shadow p-3">
<input
name="name"
className="form-control mb-3"
/>
action={}
fromData
с данными отправленной формы