React-таблица добавить итог в первую строку

Я использую реагирующую таблицу 6.9.2. Я хочу иметь возможность добавить строку вверху (прямо под заголовком), которая отображает итог каждого столбца.

Вот моя функция, которая просто выводит таблицу со статическими значениями:

function App() {
  const data = [
    {
      one: 2,
      two: 10.4,
      three: 10.1,
      four: 54,
      five: 5,
      six: 5,
      seven: 10,
      eight: 10,
      nine: 10
    },
    {
      one: 1,
      two: 10.4,
      three: 10.1,
      four: 54,
      five: 5,
      six: 5,
      seven: 10,
      eight: 10,
      nine: 10
    }
  ];
  return (
    <div className = "App">
      <ReactTable
        data = {data}
        showPagination = {false}
        columns = {[
          {
            Header: "Sales Overview",
            columns: [
              {
                Header: "one",
                id: "one",
                accessor: "one",
                show: true
              },
              {
                Header: "two",
                accessor: "two",
                show: true
              },
              {
                Header: "three",
                id: "three",
                accessor: "three",
                show: true
              },
              {
                Header: "four",
                id: "four",
                accessor: "four",
                show: true
              },
              {
                Header: "five",
                id: "five",
                accessor: "five",
                show: true
              },
              {
                Header: "six",
                id: "six",
                accessor: "six",
                show: true
              },
              {
                Header: "seven",
                id: "seven",
                show: true,
                accessor: "seven"
              },
              {
                Header: "eight",
                id: "eight",
                show: true,
                accessor: "eight"
              },
              {
                Header: "nine",
                id: "nine",
                accessor: "nine",
                show: true
              }
            ]
          }
        ]}
        loading = {false}
        minRows = {1}
        className = "-striped -highlight"
      />
    </div>
  );
}

Есть ли способ добавить общую строку вверху? Даже если я получу общее значение каждого столбца, отправленного в данных, могу ли я сделать так, чтобы итоговая строка всегда отображалась вверху?

Если это поможет, я также создал песочницу для отображения таблицы: https://codesandbox.io/s/2vz3z741op

Заранее спасибо!

Простое исправление состоит в том, чтобы отказаться от основного заголовка (обзор продаж) и использовать подзаголовки для хранения сводных столбцов (общих строк).

jgoday 16.03.2019 22:33

@jgoday Не могли бы вы показать мне пример? Я не понимаю, как это будет работать

jim 17.03.2019 00:14

Хорошо, codeandbox.io/s/xp19oy14np. React-table, похоже, поддерживает только два вложенных заголовка, поэтому вы можете использовать второй уровень, чтобы имитировать общий нижний колонтитул. Извините за отступ кода и бардак со стилями, но я на стареньком ноуте с неисправной клавиатурой...

jgoday 17.03.2019 00:27

@jgoday хорошо выглядит, спасибо!

jim 17.03.2019 14:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
4
5 429
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете просто добавить итоговую запись в массив данных:

https://codesandbox.io/s/qv7vjpr69

const getTotals = (data, key) => {
  let total = 0;
  data.forEach(item => {
    total += item[key];
  });
  return total;
};
function App() {
  const data = [
    {
      one: "first row",
      two: 10.4,
      ...
    },
    {
      one: "second row",
      two: 10.4,
      ...
    }
  ];
  data.unshift({
    one: "totals",
    two: getTotals(data, "two"),
    three: getTotals(data, "three"),
    four: getTotals(data, "four"),
    five: getTotals(data, "five"),
    six: getTotals(data, "six"),
    seven: getTotals(data, "seven"),
    eight: getTotals(data, "eight"),
    nine: getTotals(data, "nine")
  });

Другие вопросы по теме