Categories
React Answers

How to set focus on an input field after rendering with React?

Spread the love

Sometimes, we want to set focus on an input field after rendering with Reatct.

In this article, we’ll look at how to set focus on an input field after rendering with Reatct.

How to set focus on an input field after rendering with Reatct?

To set focus on an input field after rendering with React, we assign a ref to the input and then call focus on the ref’s value.

For instance, we write

import React, { useEffect, useRef } from "react";

const MyForm = () => {
  const textInput = useRef(null);

  useEffect(() => {
    textInput.current.focus();
  }, []);

  return (
    <div>
      <input ref={textInput} />
    </div>
  );
};

to define the MyForm component.

In it, we call useRef to create the textInput ref.

And then we assign that as the value of the ref prop of the input.

Then we call textInput.current.focus(); in the useEffect hook callback to focus on the input.

The callback is called when the component is mounted since the 2nd argument is an empty array.

Conclusion

To set focus on an input field after rendering with React, we assign a ref to the input and then call focus on the ref’s value.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *