Если я попытаюсь отобразить FlatList следующим образом:
<View>
<FlatList
numColumns={2}
data={[1, 0, 3, null]}
renderItem={(itemData, idx) => <Text key={idx}>{itemData.item}</Text>}
horizontal={false}
/>
</View>
Единственное возвращаемое значение будет 1
и 2
(за исключением того, что они занимают место в строке / столбце, как если бы другие значения также отображались - они складываются в столбце). У меня нет доступа к значению 0
или значению null
(поэтому я не могу условно отобразить что-то еще, т.е. return itemData.item || 'No Data'
.
Если я попробую это (с чуть меньшим количеством реквизита):
<View>
<FlatList
data={[1, 0, 3, null]}
renderItem={(itemData, idx) => <Text key={idx}>{itemData.item}</Text>}
/>
</View>
Я получаю ошибку Invariant Violation: No item for index 2
.
Есть ли решение, кроме циклического предварительного просмотра данных и замены всех 0
на строку "0"
и всех null
s, undefined
, пустых строк и т. Д. На строку "null"
и условно рендеринг с этим: return itemData.item !== 'null' ? itemData.item || 'No Data'