'Why my InputBase focus doesn't work onClick React and Material UI

I'm facing strange bug. I'm trying to focus my input element when i click on button but that doesn't focus my input.

I've tried to use react hook useRef and then use it in my inputRef.

const inputRef = useRef<HTMLInputElement>(null);

        <InputBase
          inputRef={inputRef}
          value={search}
          placeholder="Search"
          onChange={onSearch}
          onKeyPress={onSearchQuery}
        />

      <Button
        variant="text"
        onClick={() => {
          inputRef.current?.focus();
          onOpen();
        }}
      >
        Focus my input
      </Button>


Solution 1:[1]

Use React.createRef()

class MyClass extends React.Component {
        constructor(props) {
          super(props);
          // create a ref to store the textInput DOM element
          this.textInput = React.createRef();
          this.focus = this.focus.bind(this);
        }
      
        focus() {
            
          // 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 <input> ref
          // with the `textInput` that we created in the constructor
          return (
            <div>
    
            <InputBase
                ref={this.textInput} 
                value={search}
                placeholder="Search"
                onChange={onSearch}
                onKeyPress={onSearchQuery}
                />
    
                
    
                
            <Button variant="text" onClick={this.focus} >
                Focus my input
            </Button>
    
            </div>
          );
        }
      }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ajay Gupta