How to focus a Material UI Textfield on button click?

前端 未结 3 698
小鲜肉
小鲜肉 2020-12-18 22:40

How to focus a Textfield after clicking a button. I tried to use autoFocus but it did not work out: Example sandbox

  
3条回答
  •  天命终不由人
    2020-12-18 23:29

    You need to use a ref, see https://reactjs.org/docs/refs-and-the-dom.html#adding-a-ref-to-a-dom-element

    class CustomTextInput extends React.Component {
      constructor(props) {
        super(props);
        // create a ref to store the textInput DOM element
        this.textInput = React.createRef();
        this.focusTextInput = this.focusTextInput.bind(this);
      }
    
      focusTextInput() {
        // Explicitly focus the text input using the raw DOM API
        // Note: we're accessing "current" to get the DOM node
        this.textInput.current.focus();
      }
    
      render() {
        // tell React that we want to associate the  ref
        // with the `textInput` that we created in the constructor
        return (
            

    ); } }

    Updated ref to inputRef for Material-UI v3.6.1.

提交回复
热议问题