如何在弹出对话框中显示数据库值?

时间:2018-04-10 12:13:30

标签: android react-native

我有一个弹出对话框,我需要在其中显示数据库中的少量值。在对话框的父活动中显示相同的内容。
但是当我使用同样的东西时,我会收到错误。
代码:

对话 -

<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]')

1 个答案:

答案 0 :(得分:1)

通过检查this.state.userDetails是否true以及前者对话来查看您的代码,您正在呈现数据库详细信息没有检查。

因此,您可以添加一个简单的检查

<Text style={{ color: '#000'  }}>Customer Name : {this.state.userDetails && this.state.userDetails.Details[0].name}</Text>