Пакет для легкого реактивного стола

Привет всем 🙂

Создание таблицы в reactJS с возможностью выбора строк было самой большой проблемой для меня, поэтому я решил создать легкий пакет, который поможет мне.

Вы можете посетить его книгу онлайн здесь.

Установка через NPM

npm install --save react-custable
Войдите в полноэкранный режим Выйти из полноэкранного режима

Вам нужно только две переменные для конфигурации, column и data

import { Table } from 'react-custable';

//the fieldName should be as same as data's key
const column = [
  { fieldName: 'name', title: 'Name', width: '180px', sortable: true },
  { fieldName: 'email', title: 'Email', width: '180px', sortable: true },
];

const data = [
  { id: '1', name: 'name one', email: 'mailone@mail.com' },
  { id: '2', name: 'name two', email: 'mailtwo@mail.com' },
];
<div className="App">
  <Table columns={columns} data={data} />
</div>;
Войти в полноэкранный режим Выйти из полноэкранного режима

что такое реквизит колонки?

‘fieldName’ — это ключевое имя ваших данных, а ‘title’ — это заголовок таблицы для этих данных, и они являются обязательными.

Дополнительная конфигурация столбцов

  • ширина: вы можете назначить определенную ширину для каждого столбца
  • sortable: эта таблица может сортировать данные столбцов, если они являются строкой
  • sortFunc: если данные столбца не являются строкой, вы можете передать функцию, которая знает, как отсортировать ваши данные.
  • fixed: если вы хотите зафиксировать столбец для горизонтальной прокрутки (работает только для первого или последнего столбца).
  • render: если вы хотите отобразить пользовательский компонент, вы должны передать функцию, которая получает row (данные текущей строки) и index (индекс текущей строки) и ваша функция должна вернуть объект Cell.
{
  value: React.ReactNode,
  props: { [key: string]: string }, //props will be applied to td elemenet like colspan
}
Вход в полноэкранный режим Выйти из полноэкранного режима
Опция Тип Описание
полеИмя* строка ключ данных
заголовок* строка заголовок колонки
ширина строка(px) ширина колонки (по умолчанию — авто)
фиксированный строка (‘left’ или ‘right’) зафиксировать колонку
сортируемый булево По умолчанию false
sortFunc ( a , b ) => число функция сортировки должна возвращать -1, если a < b, 1, если a > b, 0, если a = b
render (row, index) => Cell для рендеринга пользовательского компонента в ячейке

Как вы видели ранее, ‘data’ и ‘column’ являются обязательными для таблицы, давайте посмотрим, что является необязательным для таблицы

Опция Тип Описание
колонка* Column[] массив колонок
данные* { id:string, … }[] массив данных
isSelectable булево для включения флажков для строк
selectRowHandler (selectedRowIds) => void функция обратного вызова будет получать идентификаторы выбранных рядов
selectedRowKeys string[] значение по умолчанию для выбранных строк
пагинация { currentPage: number; totalCount: number; pageLimit: number; } значения для пагинации таблицы
pageChangeHandler (pageNumner: number) => void обратный вызов для обработки изменений страницы
rowClickHandler (row: Row) => void обратный вызов для обработки нажатия на строку
showLoading булево отображать спиннер над таблицей

Внести свой вклад

это первая версия моего пакета, так что не стесняйтесь вносить свой вклад
https://github.com/barzin144/react-custable

Оцените статью
devanswers.ru
Добавить комментарий