如何在react native listview中访问数组中的嵌套json对象属性?

如何在react native listview中访问数组中的嵌套json对象属性?,json,react-native,react-native-listview,Json,React Native,React Native Listview,我有一个json对象,如下所示: [ { "stock": 13, "update_stamp": "2017-05-22T20:19:21Z", "article": { "sku": "0761523", "bar_code": "000-111111011", "category": null, "internal_code": "11" } }, { "stock": 3, "update_stamp": "2017-05-22

我有一个json对象,如下所示:

[
  {
  "stock": 13,
  "update_stamp": "2017-05-22T20:19:21Z",
  "article": {
    "sku": "0761523",
    "bar_code": "000-111111011",
    "category": null,
    "internal_code": "11"
  }
},
{
  "stock": 3,
  "update_stamp": "2017-05-22T19:38:03Z",
  "article": {
    "sku": "715491",
    "bar_code": "000-111111012",
    "category": null,
    "internal_code": "12"
  }
}
]
_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.article.sku}
            </Text>
       </View>
    )
}
_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.stock}
            </Text>
       </View>
    )
}
当我尝试在renderRow函数中访问article.sku时,逻辑上会发生如下操作:

[
  {
  "stock": 13,
  "update_stamp": "2017-05-22T20:19:21Z",
  "article": {
    "sku": "0761523",
    "bar_code": "000-111111011",
    "category": null,
    "internal_code": "11"
  }
},
{
  "stock": 3,
  "update_stamp": "2017-05-22T19:38:03Z",
  "article": {
    "sku": "715491",
    "bar_code": "000-111111012",
    "category": null,
    "internal_code": "12"
  }
}
]
_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.article.sku}
            </Text>
       </View>
    )
}
_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.stock}
            </Text>
       </View>
    )
}
当我这样写的时候:

[
  {
  "stock": 13,
  "update_stamp": "2017-05-22T20:19:21Z",
  "article": {
    "sku": "0761523",
    "bar_code": "000-111111011",
    "category": null,
    "internal_code": "11"
  }
},
{
  "stock": 3,
  "update_stamp": "2017-05-22T19:38:03Z",
  "article": {
    "sku": "715491",
    "bar_code": "000-111111012",
    "category": null,
    "internal_code": "12"
  }
}
]
_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.article.sku}
            </Text>
       </View>
    )
}
_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.stock}
            </Text>
       </View>
    )
}
\u渲染箭头(obj:obj){
返回(
{obj.stock}
)
}
它工作得非常好


有什么我遗漏的吗?

所以对我来说,obj就是您期望的每个json对象。我认为你应该打印出obj,看看它实际上是什么,以便更好地了解你在处理什么


我认为,鉴于你所介绍的情况,obj不是空的。它可能是一个对象,这就是为什么您可以使用obj.stock访问它。但是,可能您的对象的某个项目值为null,或者该键不存在。因此,当您执行obj.article时,它将返回null,您对其操作sku,从而生成null.sku,这是一个非法操作。

打印obj.article.sku是可以的,但问题是将obj传递给renderRow函数并尝试访问其中的json值。所以您有一个对象数组,希望对每个对象调用renderRow,对吗?因此,您可能正在循环并调用每个元素上的renderRow。我要说的是在renderRow函数中执行console.log,让我们查看每个对象的所有打印输出。就像我说的,可能其中一个对象有一个空的article值。仔细检查数组中的每个项是否都有一个作为obj的article键。