Извлекать данные из InnerObject в ReactNative - PullRequest
0 голосов
/ 04 марта 2019

Я занимаюсь разработкой приложения, в котором я использую вложенный Flatlist.В main-Flatlist у нас есть renderItems, где в одном из элементов у меня есть inner-Flatlist, в котором я пытаюсь показать элементы в renderItems.У меня есть json

    {
  "data": {

    "list": [
      {
        "name":"Developer",
        "detail_values": [
          {
            "key1": "value1",
            "key2": "value2"
          },
          {
            "key1": "value1",
            "key2": "value2"
          }
        ]
      },
      {
        "name":"Developer1",
        "detail_values": [
          {
            "key1": "value1",
            "key2": "value2"
          },
          {
            "key1": "value1",
            "key2": "value2"
          }
        ]
      },
      {
        "name":"Developer2"
      },
      {
        "name":"Developer3"
      }
    ]
  }
}

Из вышеупомянутого json, как я могу извлечь объекты массива "detail_values" и отобразить данные во inner-Flatlist.

В методе renderItem inner-Flatlist у меня естьпопытался использовать .map и forEach.Я получаю сообщение об ошибке Не могу прочитать свойство 'map' из неопределенного

_renderItem({ item, index }) {
    const children = item.detail_values
    return (
      <View style={styles.cardListCell}>

        <View style={styles.view}>
          {
            item.detail_values.map(data => (
              <View><Text>{data.key1}</Text></View>
            ))
          }
          <Text style={styles.countValue}>
            {index}
          </Text>
        </View>
      </View>
    )
}

Основной код плоского списка

return (
          <FlatList
            style={styles.container}
            data={this.state.cardsMainModel.cards}// here cards is an array of models
            renderItem={this._renderItem}
            horizontal={false}
            keyExtractor={this._keyExtractorInfoSection}
          />

        );

Внутренний код плоского списка

<View style={styles.innerView}>
    <FlatList
                data={this.state.dataSource} //datasource has `list` array
                ItemSeparatorComponent={this.FlatListItemSeparator}
                renderItem={this._renderItem}
                ListHeaderComponent={this.renderHeader}
                keyExtractor={({ id }, index) => id}
              />
   </View>

1 Ответ

0 голосов
/ 04 марта 2019
{item != undefined
 ? item.detail_values.map(data => (
 <View>
 <Text>{data.key1}</Text>
 </View>
 ))
 : null}

попробуйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...