Я разрабатываю приложение React для отображения данных Excel в веб-интерфейсе. Я использую для этого компонент Equify/react-datasheet-grid. Для просмотра изменений после копирования/вставки я хочу увидеть различия в консоли. Я добавил реквизиты copyValue
и pasteValue
в столбец albumId
, чтобы посмотреть, что произойдет, но обе функции возвращают только результат:
({
rowData
}) => rowData
Вот мой код:
import React from 'react';
import { DataSheetGrid, textColumn } from 'react-datasheet-grid';
import 'react-datasheet-grid/dist/index.css'
function index() {
const valueCopy = (value) => {
console.info(value);
}
const valuePaste = (value) => {
console.info(value);
}
const columns = [
textColumn({ title: 'Album ID', key: 'albumId', copyValue: valueCopy(({ rowData }) => rowData), pasteValue: valueCopy(({ rowData }) => rowData)}),
textColumn({ title: 'ID', key: 'id' }),
textColumn({ title: 'Title', key: 'title' }),
textColumn({ title: 'URL', key: 'url' }),
textColumn({ title: 'Thumbnail URL', key: 'thumbnailUrl' }),
];
return (
<DataSheetGrid
data = {data}
onChange = {setData}
columns = {columns}
height = {850}
/>
)
}
export default index;
Как я могу увидеть все изменения копирования/вставки во всей таблице? Спасибо.
Хорошо, вот моя реализация:
const valueCopy = (column, data) => {
console.info("Copied value:",data.rowData[column]);
return data.rowData[column];
}
const valuePaste = (column, data) => {
console.info("Pasted value:",column, data);
data.rowData[column] = data.value;
return data.rowData;
}
const columns = [
textColumn({ title: 'Album ID', key: 'albumId', copyValue: (data)=>valueCopy("albumId", data), pasteValue: (data)=>valuePaste("albumId", data)}),
textColumn({ title: 'ID', key: 'id', copyValue: (data)=>valueCopy("id", data), pasteValue: (data)=>valuePaste("id", data)}),
textColumn({ title: 'Title', key: 'title', copyValue: (data)=>valueCopy("title", data), pasteValue: (data)=>valuePaste("title", data) }),
textColumn({ title: 'URL', key: 'url', copyValue: (data)=>valueCopy("url", data), pasteValue: (data)=>valuePaste("url", data) }),
textColumn({ title: 'Thumbnail URL', key: 'thumbnailUrl', copyValue: (data)=>valueCopy("thumbnailUrl", data), pasteValue: (data)=>valuePaste("thumbnailUrl", data) })
];
А вот мой лог после копирования/вставки:
index.js:13 Copied value: officia delectus consequatur vero aut veniam explicabo molestias
index.js:13 Copied value: aut porro officiis laborum odit ea laudantium corporis
index.js:13 Copied value: qui eius qui autem sed
index.js:18 Pasted value: url {rowData: {…}, value: "officia delectus consequatur vero aut veniam explicabo molestias"}
index.js:18 Pasted value: url {rowData: {…}, value: "aut porro officiis laborum odit ea laudantium corporis"}
index.js:18 Pasted value: url {rowData: {…}, value: "qui eius qui autem sed"}