React / Material UI - Могу ли я больше не использовать тег <form>при создании форм? - PullRequest
0 голосов
/ 26 апреля 2020

Я работаю над проектом React / Django, и мои элементы ввода формы создаются с использованием пользовательского интерфейса материала.

В моем бэкэнде я использую Django Rest Framework для сериализаторов и API. В моем интерфейсе я использую компоненты ввода material-ui, но больше не заключаю элементы ввода в тег form, потому что я отправляю свои запросы через ajax, а в фоновом режиме у меня есть Django для обработки сериализации и проверки данных запроса.

Это хороший подход, или я всегда должен заключать элементы ввода в тег form?

То, как выглядит мой код реакции, выглядит примерно так:

const TestComponent = props => {
    const [state, setState] = useState({
        input1: ""
    })

  const testPost = (data,token) => 
    new Promise((res,rej) => {
        let endpoint = '/test/add/'
        let options = {
          method: "POST",
          headers: {
           'Content-Type': 'application/json',
           'Authorization': `Token ${token}`
          },
          body: JSON.stringify(data),
          credentials: 'include'
        }
        fetch(url,options)
        .then(res=>res.json)
        .then(data=>{res(data)})
        .catch(err=>{rej(err})
    })

  const handleChange_input1 = e => {
    setState(prev => ({
      ...prev,
      input1: e.target.value
    }))
  }

    return(
     <Grid container>
       <Grid item>
        <TextField
        label="Input 1"
        value={state.input1}
        onChange={handleChange_input1}
        />
        <Button
        variant="text" 
        onClick={e => {
            testPost({input1: state.input1},"token123")
        }}
        >
        Submit
        </Button>
       </Grid>
     </Grid>
    )
}

export default TestComponent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...