我的以下代码输出为空白。我无法弄清楚为什么没有打印问题,甚至没有回答按钮。
试图检查各种答案并更改呼叫方法。代码中未显示任何错误。
const datas = [
{
id: 1,
text: "Question 1",
ans: [
{
id: 1,
name: "Ans 1",
},
{
id: 2,
name: "Ans 2",
}
]
},
{
id: 2,
text: "Question 2",
ans: [
{
id: 1,
name: "Ans 1",
},
{
id: 2,
name: "Ans 2",
}
]
},
{
id: 3,
text: "Question 3",
ans: [
{
id: 1,
name: "Ans 1",
},
{
id: 2,
name: "Ans 2",
}
]
}
]
;
return (
<View style={styles.container}>
<Text> Question 1</Text>
<View style={styles.cardContainer}>
<View style={styles.card}>
{datas.map((data) => {
<Text style={styles.quesText}> {data.text} </ Text>
{ data.ans.map((answ) => {
<TouchableOpacity style={styles.choiceButton} onPress={ () => this.props.navigation.navigate('Quiz')}>
<Text style={styles.buttonText}>{answ.name}</Text>
</TouchableOpacity>
})}
})}
</View>
</View>
</View>
)
}}
它应该显示: 问题1
和带有Ans 1和Ans 2的两个按钮
答案 0 :(得分:2)
在两种map
用法中,您均未返回任何内容。因此,只需为每个内容添加一个return
。另请注意,您不能返回多个子代,而是将它们包装在<View>
中以实现您的目标。这里您有正确的代码:
return (
<View style={styles.container}>
<Text> Question 1</Text>
<View style={styles.cardContainer}>
<View style={styles.card}>
{datas.map(data => {
return (
<View>
<Text style={styles.quesText}>{data.text}</Text>
{data.ans.map(answ => {
return (
<TouchableOpacity
style={styles.choiceButton}
onPress={() => this.props.navigation.navigate('Quiz')}>
<Text style={styles.buttonText}>{answ.name}</Text>
</TouchableOpacity>
);
})}
</View>
);
})}
</View>
</View>
</View>
);