Я тестирую 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 просто не отображается.
<View> <Text> {this.props.data.key} </Text> <View>
Кажется, у меня все работает нормально: snake.expo.io/@marcelkalveram/…. Можете ли вы опубликовать полный пример кода или закуску, которая поможет нам воспроизвести проблему?
Вы добавили оператор возврата в свой компонент TextComp? пример: const TextComp = () => { return(<Text>...</Text>) }
@Nerdragen, когда я попросил код TextComp, я просил предоставить полный код, в этом случае очень важно все, что находится внутри компонента (как вы обрабатываете реквизиты и как вы возвращаете компонент), показ только <View><Text>{props.text}</Text></View> вообще бесполезен, поэтому, только если вы можете, поделитесь полным кодом компонента, чтобы лучше понять, что там может быть не так.





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