How to set focus to a materialUI TextField?

后端 未结 5 712
长发绾君心
长发绾君心 2020-12-11 00:09

How can I set the focus on a material-ui TextField component?

componentDidMount() {
    ReactDom.findDomNode(this.refs.myControl).focus()
}
         


        
5条回答
  •  醉话见心
    2020-12-11 00:27

    autoFocus was also not working for me, perhaps since this is a component that's not mounted when the top-level component loads. I had to do something a lot more convoluted to get it to work:

    function AutoFocusTextField(props) {
      const inputRef = React.useRef();
    
      React.useEffect(() => {
        const timeout = setTimeout(() => {
          inputRef.current.focus();
        }, 100);
    
        return () => {
          clearTimeout(timeout);
        };
      }, []);
    
      return ;
    }
    

    Note that for some reason it does not work without the setTimeout. For more info see https://github.com/callemall/material-ui/issues/1594.

提交回复
热议问题