简体   繁体   English

渲染对象React数组

[英]Render array of object React

I'm rendering values from an array of objects . 我正在从对象数组中渲染值。 I made a counter to count how many objects in array to loop all of them , but it only loops once. 我做了一个计数器来计算数组中有多少个对象可以循环所有这些对象,但是它只循环一次。 I know after I'm returning , function breaks, but I don't know how to do it other way. 我知道返回后,函数会中断,但是我不知道如何做。 Check my sandbox, I recreated my problem https://codesandbox.io/s/goofy-easley-w5rrg 检查我的沙箱,我重新创建了问题https://codesandbox.io/s/goofy-easley-w5rrg

  const displayData=(data)=>{
    let counter = 0
    for (let i = 0; i < data.length; i++) {
      if (counter <= data.length+1) {
        counter++ 
        return Object.keys(data[i]).map((value,ids)=>{
              return <span key={ids}>{data[i][value]} </span>
           })
        }
      }

  }

Save all the JSX values into an array and return that: 将所有JSX值保存到数组中并返回:

let result = [];
// ...
result.push(Object.keys(data[i]).map(...));
// ...
return result;

You can use nested map() . 您可以使用嵌套map() I think you don't need counter variable. 我认为您不需要counter变量。

const displayData=(data)=>{
    return (
        data.map(x => 
           Object.keys(x).map((value, ids) => (
               <span key={ids}>{x[value]} </span>
           )
        )
     )
  }

 const displayData = data => { return Object.keys(data).map(el => { return el.value; }) } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM