这是数据 (react的函数式组件)
期望的结果就是 我想判断“是否置顶”如果为1 本身就是个下拉框只有1和2两个选项 就给他加个颜色 onCell方法可以实现 但是加上之后表头就没有内容了 而且我的操作列也消失了 原因就是需要在table上面写上columns={columns} 请教大佬们应该如何做???
const columns = [
{
align: "center",
label: "公告标题",
key: "title",
dataIndex: "title",
options: {},
sort: 2,
className: "",
},
{
align: "center",
label: "公告内容",
key: "content",
dataIndex: "content",
options: {},
sort: 3,
className: "",
},
{
align: "center",
label: "是否置顶",
key: "is_top",
dataIndex: "is_top",
// onCell: (record, index) => {
// console.log(record, index, "12sdafasf");
// if (+record.is_top === 1) {
// return { className: "cell-class" };
// }
// return { className: "" };
// },
options: {
1: "是",
2: "否",
},
sort: 5,
className: "cell-class ",
}
];
这是表格渲染的
{/* table */}
<Table bordered dataSource={list} rowKey="create_time" loading={loading}>
{columns.map((item) => {
return (
<Column
title={item.label}
key={item.key}
dataIndex={item.dataIndex}
align={item.align}
className={item.className}
/>
);
})}
<Column
title="操作"
align="center"
key="action"
className="cell-class1"
render={(text, record) => (
<Space size="middle">
<Button type="link" onClick={() => edit(record)}>
编辑
</Button>
<Button
type="link"
className="delete"
onClick={() => delMonitor(record)}
>
删除
</Button>
</Space>
)}
/>
</Table>
目前我的解决办法就是 把columns这个数组放到函数组件内部 然后不使用Column组件 直接渲染Table 所有的操作都在columns数组里面操作 具体代码我复制在下面 希望以后刚接手react项目的朋友能用到