React material UI 重置值

React material UI reset values

我正在使用 material UI 和 React。

我似乎无法在不在控制台中出现错误的情况下在提交时重置表单。

如果我有:<TextField defaultValue={myComment.title} refs="title" />

提交时,如果我这样做:this.refs.title.setValue('')我在控制台中收到以下错误

Warning: setValue() method is deprecated. Use the defaultValue property instead. Or use the TextField as a controlled component with the value property.

所以我尝试这样做:this.refs.title.defaultValue = '' 但那没有用。

我想我必须做一个 handleChange 事件?但是当我只想清除输入字段时,设置它似乎非常痛苦。

在此先感谢您的帮助。

因此,使用此组件可以帮助您轻松实现所需功能(即使它有点冗长)的最佳方式是将 valueonChange 属性传递给TextField... 您可以处理当前组件的状态 value,甚至可以作为道具从父组件传递..

一个简单的例子:

handleInputChange(event) {
    this.setState({
        name: event.target.value
    })
}


cleanInput() {
    this.setState({
        name: ''
    })
}

<TextField value={this.state.name} onChange={this.handleInputChange.bind(this)} />

您可以简单地使用 getInputNode().value=""

所以在你的情况下它将是 this.refs.title.getInputNode().value=""

试试这个来重置您的 TextField 和道具和状态:

reset = ()=> {
       var  m = "";
       document.getElementById('h1').value = m;
}

它只会重置你的 textField,如果你也想重置 State 或 Props 那么只需在其中添加 setState() 方法即可。

reset = ()=> {
           setState({
               firtName: '',
               lastName: ''
             })
 }

我刚刚有这个问题,我看到你可以写:

type="reset"

https://jsfiddle.net/hfcrsqy2/