У меня есть ситуация, когда мне нужно передать как State, так и Props в дополнительные данные FlatList.

Я пробовал что-то вроде этого, но не работал.

 <FlatList
      numColumns={1}
      data={this.props.artists}
      renderItem={this.renderArtistItem}
      initialNumToRender={15}
      keyExtractor={item => item.id}
      extraData={(this.state, this.props.league)}
    />

Как это сделать?

8
m9m9m 1 Май 2019 в 11:23

4 ответа

Лучший ответ

Попробуй это:

<FlatList
  numColumns={1}
  data={this.props.artists}
  renderItem={this.renderArtistItem}
  initialNumToRender={15}
  keyExtractor={item => item.id}
  extraData={[this.state, this.props.league]}
/>

Как это будет работать как массив в дополнительных данных.

7
virendrasingh bisht 3 Май 2019 в 10:50

Попробуй это,

<FlatList
  numColumns={1}
  data={this.props.artists}
  renderItem={this.renderArtistItem}
  initialNumToRender={15}
  keyExtractor={item => item.id}
  extraData={{state:this.state, props:this.props.league}}
/>
0
Jaydeep Galani 1 Май 2019 в 08:32

Вам нужно установить состояние для extraData prop.

    <FlatList
       numColumns={1}
       data={this.props.artists}
       renderItem={this.renderArtistItem}
       initialNumToRender={15}
       keyExtractor={item => item.id}
       extraData={this.state}
    />
0
Kushal Desai 24 Июн 2019 в 15:54

Вы можете попробовать это:

const extraData = {
      ...this.state,
      ...this.props
    };

<FlatList
 numColumns={1}
  data={this.props.artists}
  renderItem={this.renderArtistItem}
  initialNumToRender={15}
  keyExtractor={item => item.id}
  extraData={extraData}
/>
0
Dino 14 Окт 2019 в 06:35