作为REST API的响应,我收到了下面的对象数组,

var companyDatas = {
    "accounts": {
        "company 1 ": {
            "id": "4",
            "enabled": "1"
        },
        "company 2": {
            "id": "2",
            "enabled": "1"
        },
        "company 3": {
            "id": "1",
            "enabled": "1"
        }
    }
  };
  
  const [companyData, setcompanyData] = useState([companyDatas]);

但是我很难按照下面的格式呈现下面的对象array.

company 1  
id:4
company 2  
id:2
company 3 
id:1

到目前为止,我已经try 了以下代码,其中Response是我通过POST从rest API收到的json列表. Response.accounts

这给了我下面的对象列表,但现在我不能只显示公司的名称和ID.

    "company 1 ": {
        "id": "4",
        "enabled": "1"
    },
    "company 2": {
        "id": "2",
        "enabled": "1"
    },
    "company 3": {
        "id": "3",
        "enabled": "1"
    }

推荐答案

正如@Technophyle comments 的那样,请分享你下一次try 的内容.我假设该对象存储在某种类型的变量中,目前我将其命名为companyData.

以下是您将如何实现您想要的输出

export default function App() {

  const companyDatas = {
    "accounts": {
        "company 1 ": {
            "id": "4",
            "enabled": "1"
        },
        "company 2": {
            "id": "2",
            "enabled": "1"
        },
        "company 3": {
            "id": "1",
            "enabled": "1"
        }
    }
  };

  const [companyData, setCompanyData] = useState(companyDatas)

  return (
    <View style={styles.container}>
      {
        Object.entries(companyData.accounts)
        .map(([company, accountData]) => (
          <View key={company}>
            <Text>{company}</Text>
            <Text>id: {accountData.id}</Text>
          </View>
        ))
      }
    </View>
  );
}

使用Object.entries()将得到一个公司对象数组,如下所示:

[
    [
        "company 1 ",
        {
            "id": "4",
            "enabled": "1"
        }
    ],
    [
        "company 2",
        {
            "id": "2",
            "enabled": "1"
        }
    ],
    [
        "company 3",
        {
            "id": "1",
            "enabled": "1"
        }
    ]
]

然后使用.map(([company, accountData])),我们可以将数据赋给这些变量.然后,您只需在JSX中将它们用作{company}{accountData}.

编辑:

我之前没有注意到useState.首先,我想问为什么companyData被存储为useState([companyData]),因为这就是为什么它会给出这个错误.将[]从其中移除将会修复它.

Reactjs相关问答推荐

react 导致不必要的回归

Firebase删除UserWithEmail AndPassword仅创建匿名用户

迁移到React Router Dom v6后,我是否错误地使用了Link组件?

在react中向数组状态添加值时出错

如何在没有 node 模块的情况下利用外部Java脚本文件制作OWL carousel

有没有办法在Shopify中显示自定义计算的交货日期?

React,React Router,Joy UI:如何在导航离开和返回后禁用snackbar重新出现?

不同步渲染

无法在REACTION TANSTACK查询中传递参数

React路由dom布局隐藏内容

获取类别和页面的参数

尽管所有页面在 Reactjs 中都是公开的,但始终导航到特定页面

如何在 React Hook Form 中使用嵌套对象处理错误验证消息

从 redux 调用UPDATE_DATA操作时状态变得未定义

无法访问 usefocusEffect 中 const 的更新状态

无法在 KeyDown 上调用 useCallback 函数

页面加载时不显示数组中的数据

Cypress - 替换 React 项目中的变量

getAttribute 函数并不总是检索属性值

组件焦点上的 MUI 更改栏 colored颜色