使用地图 API 中的键渲染 JSON 数据

Render JSON data with keys from an API using map

我从我的 api 获取数据,JSON 是:

{
  Teacher: 53, 
  Student: 0,
  Staff: 1, 
  Finance: 0, 
}

当组件挂载时,我的数据存储在我的状态中 所以 this.total.users 包含我的 JSON 数据

呈现此内容的最佳方式是什么?

我知道它是 JSON 带钥匙的, 所以我应该使用

 {Object.keys(this.state.users).map((key) => (   
   <div> {key} </div>   // display Attendee, Student, Staff, Finance
 )} 

但它不起作用,因为 this.state.users 未定义 所以我发现我可以显示我的整个 JSON 对象,它适用于

 JSON.stringify(this.state.users)}

所以我想我必须混合使用它们,但是如何以及何时?我有点迷路了。

最后我只想让我的 JSON 显示为:

Attendee   Student   Staff   Finance
   53         0        1        0

您可以执行如下操作

  1. 在执行 Object.keys 之前进行条件检查,这样当 this.state.users 未定义时不会有任何问题
  2. 使用key获取值,如this.state.user[key]
  3. 将唯一键设置为 div 这样您将呈现所有用户,否则只会呈现最后一个

    {this.state.users && JSON.stringify(this.state.users, Object.keys(this.state.users).map((key, index) => (   
          <div key={'Key-'+index}>
              <div> {key} </div>   // display Attendee, Student, Staff, Finance
               <div>{this.state.users[key]</div> //this will give you value
           </div>
      )))}