我试图通过循环对象来显示卡片内的数据:
- 如果值是字符串,则它必须显示在
<p>
标签中。 - 如果该值是一个数组,它必须显示在一个表格中。
- 如果该值是一个对象,它必须再次显示在卡片中。
下面的代码仅显示value1
为检查字符串返回值的 if 语句,for 循环在那里停止。有没有什么方法可以通过循环执行我上面提到的所有类型的操作?
import React, { Component } from 'react';
import { Card, Table } from "react-bootstrap";
const obj1 = {
"title1": "value1",
"title2": ["value2", "value3", "value4"],
"title3": {
"title4": "value5",
"title5": "value6"
}
};
class Parse extends Component {
parseHandler = (data) => {
let arr = Object.values(data);
for(let i in arr) {
if (typeof arr[i] === 'object' && !Array.isArray(arr[i])) {
return (
Object.values(arr[i]).map(arrData => {
return (
<Card>
<Card.Body>
<p>{arrData}</p>
</Card.Body>
</Card>
)
})
)
} if(Array.isArray(arr[i])) {
return (
arr[i].map(arrData2 => {
return (
<Table>
<tr>
<td>{arrData2}</td>
</tr>
</Table>
)
}
))
} if(typeof arr[i] === 'string') {
return (
<p>{arr[i]}</p>
)
}
}
}
render() {
return (
<Card>
{this.parseHandler(obj1)}
</Card>
);
}
}
export default Parse;