reactjs - 如何在反应表中将数据作为参数传递?
问题描述
如何在 React Table 版本 7 中将数据值作为参数传递。
我试图在butFunction
反应表内部传递状态和 id,以便我可以创建一个函数来创建一个与状态相反的按钮。
这是我试图这样做的代码。
const data = [
{ firstName: "Jane", lastName: "Doe", status: "OPEN" , id: "1" },
{ firstName: "John", lastName: "Smith", status: "CLOSE" , id: "2" },
{ firstName: "John", lastName: "Walker", status: "OPEN" , id: "3" }
];
const columns = [
{
Header: "First Name",
accessor: "firstName"
},
{
Header: "Last Name",
accessor: "lastName"
},
{
Header: "Status",
accessor: "status"
}
];
const Table = ({ columns, data }) => {
const {
getTableProps,
getTableBodyProps,
headerGroups,
rows,
prepareRow
} = useTable({
columns,
data
});
const butFunction = (level , id) => {
console.log(level)
console.log(id)
if (level === "OPEN") {
return <button > CLOSE </button>;
} else {
return <button > OPEN </button>;
}
};
return (
<table {...getTableProps()}>
<thead>
{headerGroups.map(headerGroup => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map(column => (
<th {...column.getHeaderProps()}>{column.render("Header")}</th>
))}
<th>Action</th>
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map((row, i) => {
prepareRow(row);
return (
<tr {...row.getRowProps()}>
{row.cells.map(cell => {
return <td {...cell.getCellProps()}>{cell.render("Cell")}</td>;
})}
<td>{butFunction(data.status, data.id)}</td>
</tr>
);
})}
</tbody>
</table>
);
};
export default function App() {
return (
<div className="App">
<Table columns={columns} data={data} />
</div>
);
}
解决方案
您需要访问row.values
以访问每一行的数据。在map
函数内部,row.values
将是一个包含当前行数据的对象。
编辑:
根据您的评论,row.values
对象不包含id
您的数据对象的属性。要访问id
,请使用row.original.id
<td>{ butFunction(row.values.status, row.original.id) }</td>
推荐阅读
- mongodb - 使用 mongosh 命令将 MongoDB Atlas 链接到 shell 的问题
- mysql - 使用子表中的键对对原始 sql 表进行子集化
- r - 尝试使用 mlogit 过滤多项 logit 模型中的数据
- python-3.x - 为什么我不能从 skimage 导入?
- javascript - Gatsby - 从 Markdown 文件中的数组中获取多个图像
- haskell - 转置嵌套数据结构
- angular - 如果我不想重用原始组件/ HTML,如何在 Angular 中强制重绘 *ngIf 模板
- excel - 无法合并两个 Private Sub Worksheet_Change(ByVal Target As Range)
- flutter - 我可以在颤动的某个时候隐藏 ChewieController 上的控件吗?
- phaser-framework - 如何安装 Phaser3 文档