我正在使用 react-table (7.5.0) 在应用程序中呈现一些表。
我已经混淆并精简了我的代码,因此可能存在缺少括号或不正确的语法。
在一个简单的层面上,我有一行,两列。每列都有一个很长的描述,它被缩短,然后有一个“显示更多”按钮来切换一个带有完整描述的新行。
我的列定义如下:
{
id: "column1",
Header: "column1",
accessor: "column1",
Cell: (props) =>
<div>
<p>{props.value}</p>
<a
{...props.row.getToggleRowExpandedProps({})}
>
Show More
</a>
</div>
},
{
id: "column2",
Header: "column2",
accessor: "column2",
Cell: (props) =>
<div>
<p>{props.value}</p>
<a
{...props.row.getToggleRowExpandedProps({})}
>
Show More
</a>
</div>
}
我的 react-table 组件及其子组件如下:
{page.map((row, i) => {
prepareRow(row);
return (
<>
<tr
{...row.getRowProps()}
>
{row.cells.map((cell) => {
return (
<td
data-label={cell.column.Header}
{...cell.getCellProps()}
>
<p
>
{cell.render("Cell")}
</p>
</td>
);
})}
</tr>
{row.isExpanded ? (
<tr
>
<td
colSpan={12}
>
{renderRowSubComponent({ row })}
</td>
</tr>
) : null}
</>
);
})}
子组件
const renderRowSubComponent = React.useCallback(
({ row }) => (
<div
dangerouslySetInnerHTML={{ __html: row.values.column1}}
></div>
),
[]
);
如您所见,在子组件中,我在展开的行中抓取“row.values.column1”数据并显示它。
这存在一个问题,即单击第二列仍将显示第一列的完整描述。
有没有办法让我根据单击的单元格(即 getToggleRowExpandedProps)来获取子组件中列的访问/ID,然后显示相应单元格的完整描述。
谢谢