Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
|
otrimannja_danix_z_formi_react [2024/03/20 18:43] tro создано |
otrimannja_danix_z_formi_react [2024/03/20 18:47] (текущий) tro |
||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| ===== Неконтрольована форма ===== | ===== Неконтрольована форма ===== | ||
| Якщо значення полів форми потрібні лише в момент її відправки, | Якщо значення полів форми потрібні лише в момент її відправки, | ||
| + | **Варіант 1** | ||
| < | < | ||
| const LoginForm = () => { | const LoginForm = () => { | ||
| Строка 19: | Строка 20: | ||
| // Скидаємо значення полів після відправки | // Скидаємо значення полів після відправки | ||
| form.reset(); | form.reset(); | ||
| + | }; | ||
| + | |||
| + | return ( | ||
| + | <form onSubmit={handleSubmit}> | ||
| + | <input type=" | ||
| + | <input type=" | ||
| + | <button type=" | ||
| + | </ | ||
| + | ); | ||
| + | }; | ||
| + | |||
| + | </ | ||
| + | |||
| + | **Варіант 2 (правильний)** | ||
| + | Створюємо функцію що передаємо як пропс до компоненти з формою | ||
| + | < | ||
| + | const App = () => { | ||
| + | |||
| + | // Колбек-функція для обробки сабміту форми | ||
| + | const handleLogin = (userData) => { | ||
| + | // Виконуємо необхідні операції з даними | ||
| + | console.log(userData); | ||
| + | }; | ||
| + | |||
| + | return ( | ||
| + | <div> | ||
| + | < | ||
| + | {/* Передаємо колбек як пропс форми */} | ||
| + | < | ||
| + | </ | ||
| + | ); | ||
| + | }; | ||
| + | |||
| + | </ | ||
| + | |||
| + | В компненті з формою отримуємо функцію що повинна щось зробити з данними з форми | ||
| + | < | ||
| + | const LoginForm = ({ onLogin }) => { | ||
| + | |||
| + | const handleSubmit = (evt) => { | ||
| + | evt.preventDefault(); | ||
| + | |||
| + | const form = evt.target; | ||
| + | const { login, password } = form.elements; | ||
| + | |||
| + | // Викликаємо пропс onLogin | ||
| + | onLogin({ | ||
| + | login: login.value, | ||
| + | password: password.value, | ||
| + | }); | ||
| + | |||
| + | form.reset(); | ||
| }; | }; | ||