createRef

Pitfall

createRef is mostly used for class components. Function components typically rely on useRef instead.

createRef creates a ref object which can contain arbitrary value.

class MyInput extends Component {
inputRef = createRef();
// ...
}

Reference

createRef()

Call createRef to declare a ref inside a class component.

import { createRef, Component } from 'react';

class MyComponent extends Component {
intervalRef = createRef();
inputRef = createRef();
// ...

See more examples below.

Parameters

createRef takes no parameters.

Returns

createRef returns an object with a single property:

  • current: Initially, it’s set to the null. You can later set it to something else. If you pass the ref object to React as a ref attribute to a JSX node, React will set its current property.

Caveats

  • createRef always returns a different object. It’s equivalent to writing { current: null } yourself.
  • In a function component, you probably want useRef instead which always returns the same object.
  • const ref = useRef() is equivalent to const [ref, _] = useState(() => createRef(null)).

Usage

Declaring a ref in a class component

To declare a ref inside a class component, call