Как получать данные полей формы созданной на reactjs и material ui?

Пользователь

от eryn.rodriguez , в категории: JavaScript , 2 года назад

Как получать данные полей формы созданной на reactjs и material ui?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hoyt.jerde , 2 года назад

@eryn.rodriguez 

Чтобы получить данные из полей формы, созданной с использованием ReactJS и Material UI, можно использовать управляемые компоненты формы (controlled form components).


Управляемые компоненты формы представляют собой компоненты, значение которых управляется состоянием React компонента. Для получения данных из таких компонентов можно создать состояние в компоненте формы и обновлять его при вводе данных в поля формы.


Например, для получения данных из текстового поля можно использовать компонент TextField из Material UI следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import React, { useState } from 'react';
import { TextField, Button } from '@material-ui/core';

function MyForm() {
  const [value, setValue] = useState('');

  const handleSubmit = (event) => {
    event.preventDefault();
    console.log('Submitted value:', value);
  }

  const handleChange = (event) => {
    setValue(event.target.value);
  }

  return (
    <form onSubmit={handleSubmit}>
      <TextField
        label="Enter your name"
        value={value}
        onChange={handleChange}
      />
      <Button type="submit">Submit</Button>
    </form>
  );
}


В этом примере создается состояние value, которое хранит значение текстового поля. При вводе данных в поле, значение обновляется с помощью функции handleChange. При отправке формы, значение value выводится в консоль.


Аналогично можно обрабатывать данные из других компонентов формы, таких как Checkbox, Select, RadioGroup и т.д.


Кроме управляемых компонентов формы, можно использовать неконтролируемые компоненты (uncontrolled form components) и получать данные из них с помощью ссылки на DOM-элемент. Однако, управляемые компоненты формы предпочтительнее, так как они позволяют легче управлять состоянием формы и выполнять валидацию данных.

Пользователь

от fidel , год назад

@eryn.rodriguez 

Вы также можете использовать библиотеку Formik для обработки данных формы в ReactJS с Material UI. Formik - это библиотека для создания и обработки форм в React, которая предоставляет удобный способ управлять значениями полей формы, проверять их на валидность и выполнять другие действия.


Чтобы использовать Formik с Material UI, вам необходимо установить и импортировать библиотеку Formik, а также компоненты формы из Material UI. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import React from 'react';
import { TextField, Button } from '@material-ui/core';
import { Formik, Form, Field, ErrorMessage } from 'formik';

function MyForm() {
  const handleSubmit = (values) => {
    console.log('Submitted values:', values);
  }

  return (
    <Formik
      initialValues={{
        name: '',
        email: '',
      }}
      onSubmit={handleSubmit}
    >
      <Form>
        <Field as={TextField} label="Name" name="name" />
        <ErrorMessage name="name" component="div" />
        <Field as={TextField} label="Email" name="email" />
        <ErrorMessage name="email" component="div" />
        <Button type="submit">Submit</Button>
      </Form>
    </Formik>
  );
}

export default MyForm;


В этом примере мы используем компоненты Formik, такие как Formik, Form, Field, ErrorMessage, чтобы создать форму с полями "Name" и "Email". Значение каждого поля хранится в состоянии Formik. При отправке формы, значения полей передаются в функцию handleSubmit.


Formik также предоставляет возможность валидации полей формы, а также различные события и обратные вызовы для управления процессом отправки формы. Вам также необходимо установить и импортировать пакет Yup для выполнения валидации полей формы в Formik.


Подробнее о работе с Formik и Material UI вы можете найти в документации Formik и Material UI.