Собственная версия ListView React cloneWithRows не получает правильные данные - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь передать данные с одного экрана на другой, и у меня есть данные в

this.props.data, который имеет что-то вроде этого ["12121", "434536"], я пытаюсь сделать следующее пытаясь добавить эти данные в список через this.ds.cloneWithRows([values]),

но я получаю вывод, как показано ниже:

["12121","434536"] в одном ряду, элементы не добавляются один за другим.

let values= [];
      values =this.props.data;
      alert(values)
     this.ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    this.state = {

      dataSource: this.ds.cloneWithRows([values]),


<ListView
        style={{width: '100%'}}
          renderHeader={() => <Text style={styles.text}>adding Started</Text>}
          dataSource={this.state.dataSource}
          renderRow={(rowData) => <View style={{borderWidth:1, borderColor: '#232C46',borderRadius: 4}}>
            <Text style={[styles.text, {backgroundColor: '#192034'}]}>{rowData}</Text>
            </View>
          }
        />

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Согласен, с первым ответом это синтаксическая ошибка («значения» уже в правильной форме, нет необходимости помещать их в массив).

Кроме того, только FYI, ListView является устаревшим компонентом, и вы можете захотеть преобразовать его в FlatList для меньшего количества ошибок, лучшей производительности / использования памяти, и я считаю более интуитивно понятный API.

https://facebook.github.io/react-native/docs/flatlist

0 голосов
/ 28 июня 2018

Ваши данные уже являются массивом. Вам не нужны дополнительные []

Измените его, как показано ниже;

this.ds.cloneWithRows(values)
...