I need to implement table sorting by column so am rewriting my react table component using react-table's ReactTable component.
One of table cells will contain a link and needs to access more one row property. So far, the link column code looks like:
{
Header: "Name",
accessor: "name",
Cell: cellInfo => (
<Link className="scenarioDetailLink"
to={cellInfo.row.linkDestination}
id={cellInfo.row.linkName}>{cellInfo.row.name}</Link>
)
},
It results in elements like this:
The generated anchor element is missing id and href properties. What am I doing wrong.
It turned out I needed to use cellInfo.original rather than cellInfo.row. When you provide a Cell
renderer you should use cellInfo.original
to get at all of your row data (especially if you aren’t showing that data as columns). The row
only has what is displayed in the table.
I have had a similar problem and I have solved it as follows:
Cell: (tableInfo) => `$ {tableInfo.data [tableInfo.row.index] .dateToShow}`
where: tableInfo is an object that has among other things the following attributes: {columns: []}, data: [], comlumn: {}, row: [.], cell: {}} and dateToShow is a value that is not in the view, but exists in the data model. If you need to access data that is in the table view you can use the row object, if it is not in the table view you can access the data model using the data array.
in a column you can have:
{
Header: "dataProperty",
accessor: "dataProperty",
Cell: ({ value, row }) => {
// here you can use value to render cell
// with value of dataProperty
// or you can access all other row data properties
// from row.original
// for example:
return row.original.id;
}
},
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With