如何在添加产品成功后清除ReactJs中的表单输入

如何在添加产品成功后清除ReactJs中的表单输入,reactjs,Reactjs,我想在提交表单后清除表单输入,但我不能。我该怎么做 这是我的密码 const onHandleSubmit = (e) => { if (values.name.trim() === "") { setIsValid(false); } else { createProductRequest(values, imageAsFile); } }; 这是我的setdefaultValue const [value

我想在提交表单后清除表单输入,但我不能。我该怎么做

这是我的密码

const onHandleSubmit = (e) => {
    if (values.name.trim() === "") {
      setIsValid(false);
    }
    else {
      createProductRequest(values, imageAsFile);
    }
  };
这是我的setdefaultValue

const [values, setValues] = useState({
    image: "",
    name: "",
    price: 0,
    description: "",
    categoty: "",
  });
这是我在表单中的按钮

<Button
    btnText="Submit"
    size="btn-md"
    onClick={onHandleSubmit}
    disabled={isValid}
 />
我必须这样做

   useEffect(() => {
        if (type.CREATE_PRODUCT_SUCCESS) {
          fetchProductRequest();
          const defaultValues = {
            image: "",
            name: "",
            price: 0,
            description: "",
            categoty: "",
          }
          setValues(defaultValues)
        }
      }, [fetchProductRequest, type

]);
但它不起作用

我从react bootstrap自定义我的表单

谢谢您的帮助。

只需添加:

setValues({
    image: "",
    name: "",
    price: 0,
    description: "",
    categoty: "",
  })
createProductRequest(值,imageAsFile)之后

比如:

 else {
      createProductRequest(values, imageAsFile);
  setValues({
    image: "",
    name: "",
    price: 0,
    description: "",
    categoty: "",
  })
    }

最好不要调用来自组件主体的请求,以避免存储中的数据同步问题。出于这些目的,请使用诸如redux thunk或redux sagas之类的中间件。在它们中,在服务器成功响应后,调用该方法以清除输入:

const defaultValues={
图像:“”,
姓名:“,
价格:0,,
说明:“,
类别:“,
}

setValues(defaultValues)
非常感谢您,但我不允许这样做,因为它可能由于某种原因而失败!我有我上面的问题,你能帮我再检查一下吗?你能支持我吗
 else {
      createProductRequest(values, imageAsFile);
  setValues({
    image: "",
    name: "",
    price: 0,
    description: "",
    categoty: "",
  })
    }