首先,这个报错的主要意思可以理解为React无法渲染对象,只能渲染数组等等其它类型,所以我们可以尝试把对象转换为数组(当然,这是最直接的解决方式,是个人都想这么解决,我会先介绍这种“直接”的解决方式,然后再说明对于我自己我个人的蒟蒻操作,导致自己在这个报错上浪费好久好久的过程!)气死我了!
1. 将对象转换为数组
常见错误方式如下:
export default function beauty() {
const obj = {
id: 1,
name: 'dameinv',
};
const group = {
{id: 1, name: 'ni'},
{id: 2, name: 'wo'},
};
return(
<div>
{obj}
{group}
</div>
);
}
这错误就是我们渲染了对象,下面分别直接将对象的属性拿出来使用、将对象转换为数组:
export default function beauty() {
const obj = {
id: 1,
name: 'dameinv',
};
const group = {
{id: 1, name: 'ni'},
{id: 2, name: 'wo'},
};
return(
<div>
{group.map((obj, index) => {
return (
<div key={index}>
<h2>name: {obj.name}</h2>
</div>
);
})}
<div>
<h2>name: {obj.name}</h2>
</div>
</div>
);
}
2. JSX中使用JSON.stringify转换该值
方法将会在对象渲染之前,将其转换为字符串。
export default function beauty() {
const obj = {
id: 1,
name: 'dameinv',
};
const group = {
{id: 1, name: 'ni'},
{id: 2, name: 'wo'},
};
return(
<div>
<h1>{JSON.stringify(obj)}</h1>
<h1>{JSON.stringify(group)}</h1>
</div>
);
}
3. 我的错误
我不管使用上面什么方法,依旧报错,我记得我也没改什么啊啊啊,最后改了好久好久,使用排除法,所有代码一段一段的改,最后是ProTable的Columns定义的时候一个title没写dataIndex。。。无语。。。可能是框架内部的问题,无法更好地展示这个错误,也可能我没写dataIndex他确实直接读取内容确实是一个对象,确实无法渲染。。。(我猜的/(ㄒoㄒ)/~~)