Таблица реагирования — переключение строки, развернутой в двух разных столбцах

#reactjs #react-table #react-table-v7

#reactjs #react-таблица #react-table-v7

Вопрос:

Я использую 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), чтобы затем отобразить полное описание этой соответствующей ячейки.

Спасибо