【问题标题】:Empty Material-UI textfield after submitting the form提交表单后清空 Material-UI 文本字段
【发布时间】:2021-04-17 04:54:24
【问题描述】:

提交表单后如何清除 TextField 中的值?代码中的所有组件都是功能组件,而不是类组件。这是其中一个 TextFields,其他与此类似。我可以在下面的代码中设置 type='search' 但是用户需要按下一个按钮来清除该值,即使这样,错误检查也会抱怨该字段为空。 尝试刷新组件会更好吗?此表单位于我的应用程序的侧边栏中。

<form onSubmit={onSubmitHandler} className={classes.root}>
  <TextField
    name='firstName'
    inputRef={register({
      required: "Please enter first name",
      validate: value => isEmpty(value)
    })}
    label={translate('invitation.first_name')}
    error={!!errors.firstName}
    type='search'
    autoFocus
    fullWidth
  />

【问题讨论】:

    标签: javascript react-native material-ui


    【解决方案1】:

    您必须将一个 value 属性传递给 TextField 组件。检查以下示例:

    class SomeComponent extends Component {
      state = {value: ''}
      resetValue = () => {
        this.setState({value: ''});
      }
      render() {
        return (
          <div>
            <TextField
              ...
              value={this.state.value}
            />
            <button onClick={this.resetValue}>Reset</button>
          </div>
        )
      }
    }
    

    【讨论】:

    • 我不能使用“this”,或者至少我认为是这样,因为我的组件不是一个类。
    • 如果你使用的是功能组件,你可以使用“useState”钩子
    猜你喜欢
    • 1970-01-01
    • 2014-10-17
    • 2017-07-31
    • 1970-01-01
    • 2014-12-16
    • 2012-04-16
    • 2014-07-24
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多