我有一个弹出对话框,我需要在其中显示数据库中的少量值。在对话框的父活动中显示相同的内容。
但是当我使用同样的东西时,我会收到错误。
代码:
对话 -
<Dialog
visible={this.state.showDialog}
title="Custom Dialog"
onTouchOutside={() => this.openDialog(false)}
contentStyle={{ justifyContent: 'center', alignItems: 'center', }}
animationType="fade">
<Text style={{ fontWeight: "bold", fontSize:22, textAlign:'center', color: '#000' }}>User Details</Text>
<Text style={{ color: '#000' }}>Customer Name : {this.state.userDetails.Details[0].name}</Text>
<Button onPress={() => this.createPDF(this.state.userDetails)} style={{ marginTop: 10, color: '#000' }} title="Proceed" />
</Dialog>
数据库详情(工作) -
<View style={[styles.container, { marginTop:30 }]}>
{
this.state.userDetails ?
<View>
<Text style={{ fontWeight: "bold", fontSize:22, textAlign:'center', color: '#000' }}>User Details</Text>
<View style={{ marginLeft:40, marginTop:15 }}>
<Text style={{ color: '#000' }}>Name : {this.state.userDetails.Details[0].name}</Text>
</View>
</View>
:
<Text>Loading...</Text>
}
</View>
对于上述情况,我收到此错误 -
TypeError:undefined不是对象(评估'this.state.userDetails.Details [0]')
答案 0 :(得分:1)
通过检查this.state.userDetails
是否true
以及前者对话来查看您的代码,您正在呈现数据库详细信息没有检查。
因此,您可以添加一个简单的检查
<Text style={{ color: '#000' }}>Customer Name : {this.state.userDetails && this.state.userDetails.Details[0].name}</Text>