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

时间:2017-05-22 21:35:36

标签: 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-22T19:38:03Z",
  "article": {
    "sku": "715491",
    "bar_code": "000-111111012",
    "category": null,
    "internal_code": "12"
  }
}
]

当我尝试在renderRow函数中访问article.sku时,我在逻辑上发生的事情是这样做:

_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.article.sku}
            </Text>
       </View>
    )
}

但我得到错误:

undefined is not an object (evaluating 'obj.article.sku')

当我写这样的东西时:

_renderRow(obj: Obj) {
    return(
        <View style={styles.article}>
            <Text numberOfLines={1} style={styles.articleText}>
                {obj.stock}
            </Text>
       </View>
    )
}

完美无缺。

我遗失的任何东西?

1 个答案:

答案 0 :(得分:0)

所以对我来说,听起来obj是你对每个json对象的期望。我认为你应该打印obj,看看它是什么,以便更好地了解你正在处理的事情。

我认为,鉴于你所呈现的内容,obj并非空洞。它可能是一个对象,这就是为什么你能用obj.stock这样访问它的原因。但是,也许你的一个对象是&#39;文章值为null或者关键是不存在。因此,当你执行obj.article时,它将返回null,并且你操作sku就会产生一个非法操作的null.sku。