【问题标题】:react material reset form value反应材料重置表单值
【发布时间】:2020-06-21 04:12:29
【问题描述】:

我正在使用带有钩子的反应材料,我想对材料形式进行重置。

我一直在尝试设置状态,但没有反映任何变化

<form className="create-account-form" autoComplete="off" onSubmit={onSubmit}>
  <FormControl
    error={!!errorText.first_name}
    variant="outlined"
    size="small"
    fullWidth
  >
    <InputLabel>First Name</InputLabel>
    <OutlinedInput
      name="first_name"
      className="create-account-input"
      labelWidth={90}
      disabled={loading}
      onChange={event => handleChange("first_name", event)}
    />
  </FormControl>
  <Button
    type="submit"
    className="submit-button"
    color="primary"
    variant="contained"
  >
    Submit
  </Button>
</form>;
//my state varibles

const [signUpData, setSignUpData] = useState({
  first_name: ""
});
const handleChange = (field, event) => {
  if (event) {
    setSignUpData({
      ...signUpData,
      [field]: event.target ? event.target.value : event
    });
  }
};

在提交时,我想清除输入字段中的数据。

const onSubmit = e => {
  e.preventDefault();
   setSignUpData((prev) => (prev.first_name = "",));

  // clearfunction()
};

【问题讨论】:

    标签: javascript reactjs react-material


    【解决方案1】:

    加载初始状态

    const init = {first_name: ''};
    const [signUpData, setSignUpData] = useState(init)
    
    const onSubmit = (e) => {
      e.preventDefault();
      // do submit logic
      setSignUpData(init)
    }
    

    【讨论】:

    • 我也一直将状态设置为空,但没有任何变化
    【解决方案2】:

    使对象重置或初始值设置 作为

    const initial_value={
    
    first_name:""}
    

    然后setSignUpData(...initial_value);因为你有一个输入使用了这个形状 或setSignUpData(initial_value);

    【讨论】:

      【解决方案3】:

      您看,您实际上并没有将 状态变量 绑定到 输入字段

      <OutlinedInput
            name="first_name"
            className="create-account-input"
            labelWidth={90}
            disabled={loading}
            onChange={event => handleChange("first_name", event)}
      
            //add this
            value={signUpData.first_name}
      
          />
      

      【讨论】:

        猜你喜欢
        • 2022-06-30
        • 1970-01-01
        • 2020-10-08
        • 2022-01-22
        • 2019-05-14
        • 2020-10-14
        • 1970-01-01
        • 2021-03-11
        • 2021-06-02
        相关资源
        最近更新 更多