Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs react hook表单-每次提交后输入字段为空_Reactjs_React Hooks - Fatal编程技术网

Reactjs react hook表单-每次提交后输入字段为空

Reactjs react hook表单-每次提交后输入字段为空,reactjs,react-hooks,Reactjs,React Hooks,我想了解react hook表单是如何工作的。 为此,我创建了以下示例: import React from 'react'; import { useForm } from 'react-hook-form'; const InputForm = () => { const { register, handleSubmit } = useForm(); const onSubmit = (data) => { console.log(data); };

我想了解react hook表单是如何工作的。 为此,我创建了以下示例:

import React from 'react';
import { useForm } from 'react-hook-form';

const InputForm = () => {
  const { register, handleSubmit } = useForm();

  const onSubmit = (data) => {
    console.log(data);
  };

  return (
    <>
      <Form onSubmit={handleSubmit(onSubmit)}>
        <Form.Group controlId='formBasicName'>
          <Form.Label>Name</Form.Label>
          <Form.Control
            type='text'
            name='name'
            ref={register}
          />
        </Form.Group>

        <Form.Group controlId='formBasicEmail'>
          <Form.Label>Email address</Form.Label>
          <Form.Control
            type='email'
            name='email'
            ref={register}
          />
          
        <Button className='submitBtn' type='submit'>
          Submit
        </Button>
      </Form>
    </>
  );
};

export default InputForm;
从“React”导入React;
从“react hook form”导入{useForm};
常量InputForm=()=>{
常量{register,handleSubmit}=useForm();
const onSubmit=(数据)=>{
控制台日志(数据);
};
返回(
名称
电子邮件地址
提交
);
};
导出默认输入格式;
它可以工作,如果我提交表单,我可以在控制台中看到数据对象。 唯一的问题是,每次提交后,输入框仍显示其值。 我希望在每次提交后,输入框的值变为空。
使用useState很容易做到这一点,但现在我正在使用react-hook from,我不知道如何做到这一点。

使用此提交功能:

const onSubmit = (data, e) => {
  e.target.reset();
};


将其添加到提交功能中

使用以下代码重置输入字段

const onSubmit = (data, e) => {
  e.target[0].value = ''; // for name
  e.target[1].value = '';  // for email
};

反应钩形式v7。这将清除表单数据

    const {register, handleSubmit, formState: { errors }, reset} = useForm();

    const onSubmit = (data, e) => {
        console.log(data)
        reset('', {
            keepValues: false,
        })
    }

请解释这可能有什么帮助,将代码扩展到最小的可复制示例,在这种状态下它没有帮助。
    const {register, handleSubmit, formState: { errors }, reset} = useForm();

    const onSubmit = (data, e) => {
        console.log(data)
        reset('', {
            keepValues: false,
        })
    }