Используя keyExtractor, все равно получаю предупреждение, что у моих предметов нет ключей - PullRequest
0 голосов
/ 20 мая 2019

Я создаю flatList, но все еще получаю предупреждение о том, что у меня нет ключей на моих предметах.

Я попытался создать функцию для деструктурирования реквизита.

Мой метод рендеринга:

render() {
    return (
      <View>
        <FlatList
          data={this.props.matches}
          renderItem={({ item }) => (
            <ListItem
              title={`${item.deck} vs. ${item.opponentDeck}`}
              subtitle={item.record}
              keyExtractor={(item)=>item.time}
            />
          )}
        />
      </View>
    );
  }

this.props выглядит так:

Matches:  Array [
  Object {
    "OTPGameOne": false,
    "OTPGameTwo": false,
    "deck": "Amulet",
    "gameLosses": 0,
    "gameWins": 2,
    "opponentDeck": "Esper",
    "time": "04/26 3:08 p.m.",
    "winGameOne": true,
    "winGameTwo": true,
    "winMatch": true,
  }
  ...
],
Headings:  Array [
  "Deck",
  "Opp Deck",
  "Win Match",
  "Time/Date",
]

1 Ответ

1 голос
/ 20 мая 2019

keyExtractor должен быть в плоском списке, а не в renderItem

<FlatList
  data={this.props.matches}
  keyExtractor={(item)=>item.time}
  renderItem={({ item }) => (
    <ListItem
      title={`${item.deck} vs. ${item.opponentDeck}`}
      subtitle={item.record}/>
  )}
/>
...