我无法访问json子数据

时间:2020-07-17 22:31:40

标签: react-native

"menus": [
{
  "key": "main",
  "description": "Siparişinizi oluşturun",
  "items": [
    {
      "name": "İndirimli Menüler",
      "caption": "İndirimli Menüler",
      "image": "./images/kirmizi-et-menu.jpg",
      "items": [
        {
          "name": "Kırmızı Et Menü",
          "caption": "Kırmızı Et Menü",
          "price": 2095,

我无法以这种方式访问​​此json数据。我该怎么办?

     renderMenuList = ({item, index}) => {
    return (
      <View>
        <Text>{item.items[0].items[0].name}</Text>
      </View>
    );
  };
  render() {
    return (
      <SafeAreaView>
        <FlatList
          renderItem={this.renderMenuList}
          data={data.menus}
        />
      </SafeAreaView>

我收到错误消息“未定义不是对象” 我正在获取主要项目数据。但是我无法获得下面的数据。

2 个答案:

答案 0 :(得分:1)

您能尝试一下吗?

 <SafeAreaView>
    <FlatList
      renderItem={this.renderMenuList}
      data={menus}
    />

仅通过data,因为prop data的{​​{1}}仅接收数组,如果放置FlatList,则将传递对象

因此,如果您想在组件data.menu中调用Kırmızı Et Menü这样的项目,我想您应该采用这种方式

renderMenuList

还有另一件事,您应该在组件 renderMenuList = ({item, index}) => { return ( <View> <Text>{item.name}</Text> </View> ); 中更改此属性:

  • FlatListdata={data.menus}

类似这样的东西:

data={menus.items}

答案 1 :(得分:0)

Ciao,我认为您的问题出在renderMenuList上。试试这个:

renderMenuList = menus.forEach((item, index) => { ... });