Реализованный плоский список не отображается?

Мой ReactNative FlatList не отображает эту простую реализацию.

 <FlatList style = {{flex:1, backgroundColor:'red'}}
           data = {this.state.users}
           keyExtractor = {item => item.key.toString()}
           renderItem = {({item}) => {
               return (
                   <ChatUserCard key = {item.uid} username = {item.username} />
               )
           }}
/>

ChatUserCard

<View style = {styles.cardStyle}> 
    <Text style = {styles.itemStyle}>{this.props.username}</Text>
    <Button style = {styles.buttonStyle}
            title='Chat'
            onPress = {this.startChat} />
</View>

Попробуй без отдачи и парентеза

Franco Coronel 09.12.2018 02:07

я пробовал только с => {<ChatUserCard key = {item.uid} username = {item.username} />}, но безуспешно

hehexd2222 09.12.2018 02:19

Вы используете immutableJS? Кроме того, можете ли вы предоставить весь свой класс?

AnonymousSB 09.12.2018 02:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
141
2

Ответы 2

Попробуйте добавить комментарии к представлению под плоским списком и удалите элемент Flex 1 из стилей плоского списка. Попробуйте это, чтобы проверить, связано ли это со стилями

Я думаю, что происходит то, что вы не обернули свой FlatList в View с набором flex: 1. Кроме того, вы, вероятно, можете использовать свой uid в качестве ключа, а не устанавливать key в данных вашего объекта.

Демо

https://snack.expo.io/@anonymoussb/so53688423

import * as React from 'react';
import { Text, View, StyleSheet, Button, FlatList } from 'react-native';

class ChatUserCard extends React.Component {
  render() {
    return (
      <View style = {styles.cardStyle}> 
          <Text style = {styles.itemStyle}>{this.props.username}</Text>
          <Button style = {styles.buttonStyle}
                  title='Chat'
                  onPress = {this.startChat} />
      </View>
    )
  }
}

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      users: [
        { key: 123, uid: 123, username: 'taco' },
        { key: 456, uid: 456, username: 'cat' }
      ]
    }
  }
  render() {
    return (
      <View style = {styles.container}>
        <FlatList style = {{flex:1, backgroundColor:'red'}}
           data = {this.state.users}
           keyExtractor = {item => item.key.toString()}
           renderItem = {({item}) => {
               return (
                   <ChatUserCard key = {item.uid} username = {item.username} />
               )
           }}
        />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1
  },
});

Другие вопросы по теме