Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React material UI reset values

I'm using material UI with react.

I can't seem to be able to reset a form on submit without getting errors in the console.

If I have: <TextField defaultValue={myComment.title} refs="title" />

On Submit, if I do this: this.refs.title.setValue('') I get the following error in the console

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

So I tried to do: this.refs.title.defaultValue = '' but that didn't work.

I'm thinking I have to do a handleChange event? But seems very painful to set this up when all I want to do is clear the input field.

Thanks in advance for you help.

like image 823
denislexic Avatar asked Feb 02 '16 11:02

denislexic


2 Answers

So, the best way to use this component that can help you to achieve easily what you need (even if its a bit verbose) would be passing an value and onChange properties to the TextField... You may handle the value on the state from your current component or even pass from parent's components as props..

A simple example:

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


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

<TextField value={this.state.name} onChange={this.handleInputChange.bind(this)} />
like image 85
André Junges Avatar answered Oct 04 '22 03:10

André Junges


You can simply use getInputNode().value=""

So in you case it will be this.refs.title.getInputNode().value=""

like image 45
sir_K Avatar answered Oct 04 '22 01:10

sir_K