Как показать и скрыть некоторые столбцы в React Table?

Я создал React Table. Я хочу скрыть или показать некоторые столбцы в моей таблице действием пользователя. По умолчанию все столбцы должны быть видны, но у нас будет несколько флажков, чтобы скрыть или показать некоторые столбцы.

Изображение моего стола

Предположим, я хочу показать 4 из 8 столбцов. Пожалуйста, предложите мне простой способ добиться этого.

Мой массив заголовков столбцов

  const columns = [
  {
Header: 'Column 1',
    columns: [
       {
           Header: 'S Column 1',
           accessor: 'firstName'
       }
  ]
    },
   {
  Header: 'Column 2',
   columns: [
     {
        Header: 'S Column 2',
        accessor: 'firstName'
      }
   ]
       },
     {
        Header: 'Column 3',
        columns: [
     {
        Header: 'S Column 3',
        accessor: 'firstName'
      }
     ]
     },
       {
      Header: 'Column 4',
      columns: [
        {
        Header: 'S column 4',
        accessor: 'firstName'
       }
      ]
       },
     {
 Header: 'Column 5',
columns: [
     {
Header: 'S column 5',
 accessor: 'firstName'
    }
   ]
  },
  {
 Header: 'Column 6',
 columns: [
 {
    Header: 'S column 6a',
    accessor: 'firstName'
  },
    {
    Header: 'S column 6b',
    accessor: 'firstName'
   },
   {
    Header: 'S column 6c',
    accessor: 'firstName'
     },
   {
     Header: 'S column 6d',
     accessor: 'firstName'
     }
  ]
    },
  {
 Header: 'Column 7',
 columns: [
 {
  Header: 'S column 7',
     accessor: 'firstName'
   }
     ]
    },
    {
    Header: 'Column 8',
    columns: [
  {
   Header: 'S Column 8a',
   accessor: 'firstName'
  },
 {
   Header: 'S Column 8b',
   accessor: 'firstName'
   },
   {
Header: 'S Column 8c',
accessor: 'firstName'
  },
  {
  Header: 'S Column 8d',
  accessor: 'firstName'
  }
 ]
  },
  ];

Пожалуйста, помогите мне достичь этой функции самым простым способом.

Если можете, вы можете показать демонстрацию на codeandbox.


person Community    schedule 05.12.2018    source источник
comment
CSS стили для визуального скрытия не сработает?   -  person Prakhar    schedule 05.12.2018
comment
Нет, думаю, только css работать не будет. Если можете, можете показать демо.   -  person    schedule 05.12.2018


Ответы (1)


В столбце есть свойство show.
show: true, // can be used to hide a column.
Сделайте его ложным, чтобы скрыть конкретный столбец. Сохранять значения флажков пользователя в состоянии. https://react-table.js.org/#/story/readme

Примечание. Свойство столбца show устарело. Вместо этого используйте initialstate.hiddenColumns.

Проверьте: https://github.com/tannerlinsley/react-table/issues/1804

person Janaka Chathuranga    schedule 05.12.2018
comment
Не могли бы вы показать мне демо-версию Code Sandbox. Я новичок в React. - person ; 05.12.2018
comment
Не могли бы вы как-нибудь показать демонстрацию, как я могу отключить столбец, если флажок не установлен? - person ; 05.12.2018
comment
Большое спасибо. Еще один вопрос. Вы установили флажок для имени. Но я хочу сделать для всего названия. Если я отключу имя, имя и фамилия будут отключены. Не могли бы вы сделать это последнее изменение в своем демо? - person ; 05.12.2018
comment
Благодарность! спас меня от поисков - бывшие документы сборника рассказов, кажется, исчезли - person Kris Lamote; 22.03.2019
comment
Спасибо. Оцените детали также относительно hiddenColumns - person Andre DiCioccio; 26.05.2020
comment
В документации по таблице реакции есть пример, охватывающий именно этот случай: response-table.tanstack. ru / docs / examples / column-hiding - person Stuart Hallows; 05.05.2021