title: Why, exactly, do we need React.forwardRef?
body: <p>Let's say I have a component with a scrollable subcomponent, and I want to expose the ability to scroll:</p>
  <pre><code>const MyComponent = (props) =&gt; {
      return &lt;ScrollView ... /&gt;
  }
  </code></pre>
  <p>I want to be able to do</p>
  <pre><code>&lt;MyComponent ref={myRef} /&gt;
  
  ...
  
  myRef.scrollTo({x: 0});
  </code></pre>
  <p>So I need a way to forward the ref to the <code>&lt;ScrollView&gt;</code>. Let's try putting the ref on the props:</p>
  <pre><code>const MyComponent = (props) =&gt; {
      return &lt;ScrollView ref={props.scrollRef} ... /&gt;
  }
  
  ...
  
  &lt;MyComponent scrollRef={myRef} /&gt;
  
  ...
  
  myRef.scrollTo({x: 0});
  </code></pre>
  <p>I just tried that with React Native on iOS, and it indeed works. I see several advantages over <code>React.forwardRef</code>:</p>
  <ul>
  <li>Simpler, because I don't need to use another React API.</li>
  <li>Works also if there is more than one child who needs ref forwarding.</li>
  <li>Seems to me that this approach is</li>
  </ul>
  <p>What's the advantage of <code>React.forwardRef</code>? Why was it added in React 16.3?</p>