【发布时间】:2020-07-20 16:07:35
【问题描述】:
这是我要转换为数组的对象:
{ 1: {..}, 2: {..}, 3: {..}, 4: {..}, 5: {..}}
这是我用来将对象转换为数组的函数:
const convertObjectToArray = (object) => {
const array = [];
if (object) {
Object.keys(object).forEach((key) => {
array.push({[key]: object[key]});
})
console.log('object inside function', object);
console.log('array inside function', array);
return array;
} else {
return [];
}
}
这里是渲染方法:
class PostList extends React.Component {
render() {
const { postList } = this.props;
const array = convertObjectToArray(postList);
console.log('postList', postList);
console.log('array', array);
return (
<div>
{array.map(({ id, ...otherCollectionProps }) => {
return (
<Post key={id} {...otherCollectionProps} />
);
})}
</div>
);
}
};
这里的问题是我收到“无法读取未定义的属性'map'”的错误,当在控制台内我用值记录数组时 - 所以我不明白我如何获得未定义的值
These are the objects/arrays I get logged into console 我尝试过关注这些其他问题: 1.Object to Array returns undefined 2.Mapping Object to convert object to array
但它们不足以解决这个问题
提前感谢您的建议!
【问题讨论】:
-
尝试使用除 'array' 之外的其他变量名。
-
刚试了没变
-
这是你的全部代码吗?我看不出为什么
array会是未定义的。 -
尝试使用方法 Array.from() 将对象转换为数组。这是文档:developer.mozilla.org/pl/docs/Web/JavaScript/Referencje/Obiekty/…
-
不,这不是我的全部代码;无论如何,我在 Dennis Vash 的回答之后解决了这个问题。不过感谢大家的帮助!
标签: javascript arrays json reactjs jsx