How to set focus on an input field after rendering?

What’s the react way of setting focus on a particular text field after the component is rendered?

Documentation seems to suggest using refs, e.g:

Set ref="nameInput" on my input field in the render function, and then call:

this.refs.nameInput.getInputDOMNode().focus(); 

But where should I call this? I’ve tried a few places but I cannot get it to work.

28 s
28

@Dhiraj’s answer is correct, and for convenience you can use the autoFocus prop to have an input automatically focus when mounted:

<input autoFocus name=...

Note that in jsx it’s autoFocus (capital F) unlike plain old html which is case-insensitive.

Leave a Comment