使用对象

时间:2016-11-03 16:44:26

标签: javascript reactjs

所以,我知道在React中创建数据列表时,通常使用map函数。但是,既然这只适用于数组,而且我有一个对象,我不知道该怎么做。

所以,我有以下对象

[Object, Object, Object]
0:Object
1:Object
2:Object
length:3
__proto__:Array[0]

我正在尝试从每个对象中包含的url渲染图像,这就是我尝试这样做的方式。

import React from 'react';

const EvolutionChainComponent = ({data}) => {
    console.log(data);
    for(let key in data){
        console.log(data[key]);
        return(
            <div>
                <img src={data[key].sprites.front_default} role='presentation'/>
            </div>
        )
    }
}

export default EvolutionChainComponent;

问题在于,因为我使用for循环,所以一旦我返回div,代码就会突破循环。我确信有一种简单的方法可以通过迭代一个对象来做到这一点,但我不太清楚这是什么,因为我只见过React数据迭代与数组上的map函数一起使用。

2 个答案:

答案 0 :(得分:1)

您可以使用Object.keys映射键并返回元素数组而不只是1个元素:

import React from 'react';

const EvolutionChainComponent = ({data}) => {
   return Object.keys(data).map((key, index) => (
       <div key={index}>
           <img src={data[key].sprites.front_default} role='presentation'/>
       </div>
   ));
}

export default EvolutionChainComponent;

答案 1 :(得分:1)

无需迭代对象,您需要使用简单的map方法遍历对象数组

import React from 'react';

const EvolutionChainComponent = ({data}) => {
    console.log(data);
    data.map(function(item){
       return(
            <div>
                <img src={item.sprites.front_default} role='presentation'/>
            </div>
        )
    })

}

export default EvolutionChainComponent;