title: React FlatList renderItem
body: <p>I've seen this sort of syntax in JS before and I am just curious how it works. In the <a href="https://reactnative.dev/docs/flatlist" rel="nofollow noreferrer">React Native Docs for FlatList</a>, an example calls renderItem. How does this._renderItem know that what individual list item it is working with? It looks like item is being destructured, but from what object? </p>
  
  <pre class="lang-js prettyprint-override"><code>_renderItem = ({item}) =&gt; (
      &lt;MyListItem
          id={item.id}
          onPressItem={this._onPressItem}
          selected={!!this.state.selected.get(item.id)}
          title={item.title}
      /&gt;
  );
  
  render() {
      return (
          &lt;FlatList
              data={this.props.data}
              extraData={this.state}
              keyExtractor={this._keyExtractor}
              renderItem={this._renderItem}
          /&gt;
      );
  }
  </code></pre>
  
  <p>Put differently: in FlatList, another way to make this same call could be:</p>
  
  <pre><code>&lt;FlatList &lt;other props&gt; renderItem={({item}) =&gt; (&lt;MyListItem ....) /&gt;
  </code></pre>
  
  <p>Is renderItem some special prop where {item} will always be the destructured arg?</p>