ReactJS-Как установить значение для textfield из material-ui?

У меня есть selectField, и я хочу установить значение на нем. Допустим, я набираю на нем, и когда я нажимаю кнопку, Кнопка вызовет функцию, которая сбросит значение текстового поля?

<TextField hintText="Enter Name" floatingLabelText="Client Name" autoWidth={1} ref='name'/>

2 ответов


вы можете сделать это таким образом

export default class MyCustomeField extends React.Component {

      constructor(props) {
        super(props);

        this.state = {
          value: 'Enter text',
        };
      }

      handleChange = (event) => {
        this.setState({
          value: event.target.value,
        });
      };

     handleClick = () => {
        this.setState({
          value:'',
        });
      };

      render() {
        return (
          <div>
            <TextField
              value={this.state.value}
              onChange={this.handleChange}
            />
            <button onClick={this.handleClick}>Reset Text</button>
          </div>
        );
      }
    }

считается, что правильный способ-контролировать компонент в сценарии, подобном принятому ответу, но вы также можете контролировать значение таким грубым и культурно неприемлемым способом.

<TextField ref='name'/>

this.refs.name.getInputNode().value = 'some value, hooray'

и вы можете, конечно, получить значение, как так

this.refs.name.getValue()