【发布时间】:2020-05-14 16:12:51
【问题描述】:
我正在尝试呈现一个包含动态内容的表格,该表格由具有显示更多/显示更少功能的对象数组组成。
虽然我能够显示动态内容,但我无法引入显示更多/显示更少切换。基本上Show More 应该在项目数大于 3 时出现,并且应该将其余项目附加到前三个项目。 Show Less 应该能够隐藏项目并只显示前三个
我们将不胜感激。
沙盒:https://codesandbox.io/s/react-basic-class-component-3kpp5?file=/src/Table.js
我尝试过的方法
import * as React from "react";
class Table extends React.Component {
renderTableData = () => {
return this.props.data.map((item, index) => {
const { name, value } = item;
return (
<tr key={index}>
<td>{name}</td>
<td>{value}</td>
</tr>
);
});
};
renderTableHeader = () => {
let header = Object.keys(this.props.data[0]);
return header.map((key, index) => {
return <th key={index}>{key.toUpperCase()}</th>;
});
};
render() {
return (
<div>
<table>
<tbody>
<tr>{this.renderTableHeader()}</tr>
{this.renderTableData()}
</tbody>
</table>
</div>
);
}
}
export default Table;
【问题讨论】:
-
到目前为止,您为显示更多/更少功能尝试了什么?看起来此代码用于显示所有行。
标签: javascript reactjs ecmascript-6 ecmascript-5 setstate