【发布时间】:2021-05-17 04:36:37
【问题描述】:
我的应用中有一个数组 completedTests,其中一个内容示例如下(当我使用 console.log() 时):
Array [
Object {
"difference": 140,
"id": "Practice Test 3",
"targetReached": false,
"testScore": "1400",
}
]
为了显示它的内容,我会使用:
<View>
<FlatList
data={completedTests}
keyExtractor={item => item.id}
renderItem={({ item }) => (
<View style={[styles.scoreOverview, { backgroundColor: '#596b96' }]}>
<Text>{item.id}</Text>
<Text>{item.testScore}</Text>
<Text>{item.targetReached.toString()}</Text>
<Text>{item.difference}</Text>
</View>
)} />
</View>
如果数组为空,我会将我的数组设置为["none"],并尝试显示它会导致以下错误:
undefined 不是一个对象(评估 'item.targetReached.toString`)
如何以我想要的方式有条件地渲染我的FlatList?
【问题讨论】:
-
为什么没有空数组?
-
completedTests从 Firebase Firestore 获取数据,因此对于新用户来说它将是空的 -
这里的问题是你有一个字符串“none”类型的项目,唯一的选择是检查类型并决定组件
-
我该怎么做?
-
请参考我的回答
标签: javascript react-native react-native-flatlist