Элементы React Native FlatList не отображаются

Я тестирую FlatList, вложенный в навигатор, и пытаюсь понять, как он работает. Код ниже работает нормально:

<FlatList
    data = {[{key: 'a'}, {key: 'b'}]}
    renderItem = {({item}) => <Text>{item.key}</Text>}
    horizontal = {true}
/>

Но это не так:

<FlatList
    data = {[{key: 'a'}, {key: 'b'}]}
    renderItem = {({item}) => <TextComp data = {item}/>}
    horizontal = {true}
/>

TextComp - это просто компонент, который отображает item.key, и при отдельном тестировании он работает должным образом. Код

<View> 
    <Text>{this.props.data.key}</Text> 
</View> 

Я также пробовал рисовать границы вокруг обоих компонентов, и кажется, что FlatList определенно отображает, а элементы - нет.

Я тестирую свое устройство Android.

Обновление: я добавил оператор console.info (this.props) в компонент TextComp, и он правильно отображает реквизиты, поэтому правильные данные передаются из FlatList в TextComp, но TextComp просто не отображается.

Вы можете поделиться кодом TextComp?

Jose Vf 12.10.2018 17:44

<View> <Text> {this.props.data.key} </Text> <View>

Nerdragen 12.10.2018 17:59

Кажется, у меня все работает нормально: snake.expo.io/@marcelkalveram/…. Можете ли вы опубликовать полный пример кода или закуску, которая поможет нам воспроизвести проблему?

Marcel Kalveram 12.10.2018 18:21

Вы добавили оператор возврата в свой компонент TextComp? пример: const TextComp = () => { return(<Text>...</Text>) }

Ray 12.10.2018 18:34

@Nerdragen, когда я попросил код TextComp, я просил предоставить полный код, в этом случае очень важно все, что находится внутри компонента (как вы обрабатываете реквизиты и как вы возвращаете компонент), показ только <View><Text>{props.text}</Text></View> вообще бесполезен, поэтому, только если вы можете, поделитесь полным кодом компонента, чтобы лучше понять, что там может быть не так.

Jose Vf 12.10.2018 19:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
3
5
3 560
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Марсель Калверам получил решение здесь после того, как я сравнил его код с моим. Оказывается, для правильного отображения элемента в FlatList требуются высота и ширина. Объяснение, которое я придумал для этого, заключается в том, что размеры элемента требуются для правильного определения размера элемента в FlatList. Точно так же размеры элемента не могут быть процентными, поскольку его родительский элемент - это FlatList, который сам имеет разные размеры. Поэтому решением моей проблемы было добавление атрибутов стиля ширины и высоты к компоненту элемента. Чтобы он автоматически изменял размер, я использовал встроенный React Native Dimensions.

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