InterviewHubPRO
Section Overview
Q360

Question 360 of 445

Part 11: Legacy Architecture, Migration Patterns & Historical Internals (354 - 445)

81%
React & Modern Frontend (445 Qs)•Part 11: Legacy Architecture, Migration Patterns & Historical Internals (354 - 445)

How to create refs?

There are two approaches

  1. This is a recently added approach. Refs are created using React.createRef() method and attached to React elements via the ref attribute. In order to use refs throughout the component, just assign the ref to the instance property within constructor.
jsx
      class MyComponent extends React.Component {
        constructor(props) {
          super(props);
          this.myRef = React.createRef();
        }
        render() {
          return <div ref={this.myRef} />;
        }
      }
  1. You can also use ref callbacks approach regardless of React version. For example, the search bar component's input element is accessed as follows,
jsx
      class SearchBar extends Component {
        constructor(props) {
          super(props);
          this.txtSearch = null;
          this.state = { term: "" };
          this.setInputSearchRef = (e) => {
            this.txtSearch = e;
          };
        }
        onInputChange(event) {
          this.setState({ term: this.txtSearch.value });
        }
        render() {
          return (
            <input
              value={this.state.term}
              onChange={this.onInputChange.bind(this)}
              ref={this.setInputSearchRef}
            />
          );
        }
      }

You can also use refs in function components using closures. Note: You can also use inline ref callbacks even though it is not a recommended approach.