
Максим
15.10.2017
12:54:12
Всем привет! Помогите решить задачку. Полигон тут: https://codepen.io/psywalker/pen/QqBBzO?editors=0110
Есть функция addRowTop = () => {, которая должна добавлять новый ряд в начало таблицы (сверху). Саму функцию можно вызвать из выпадающего меню (http://joxi.ru/82QjBbvC1pbyoA?d=1). Другие пункты пока не трогаем, они не работают (либо работают криво). Вот данные состояния рядов и колонок:
this.columns = [{
title: 'Заголовок 1',
dataIndex: '1',
render: (text, record, index) => this.renderColumns(this.state.data, index, '1', text),
}, {
title: 'Заголовок 2',
dataIndex: '2',
render: (text, record, index) => this.renderColumns(this.state.data, index, '2', text),
}, {
title: 'Заголовок 3',
dataIndex: '3',
render: (text, record, index) => this.renderColumns(this.state.data, index, '3', text),
}, ];
this.state = {
data: [{
key: '1',
1: {
editable: false,
value: 'Значение 1',
},
2: {
editable: false,
value: 'Значение 2',
},
3: {
editable: false,
value: 'Значение 3',
},
},
{
key: '2',
1: {
editable: false,
value: 'Значение 1',
},
2: {
editable: false,
value: 'Значение 2',
},
3: {
editable: false,
value: 'Значение 3',
},
}],
columnItems: 3,
keyNumber: 3,
};
Как я делаю:
addRowTop = () => {
const columnItems = this.state.columnItems;
const {data, keyNumber} = this.state;
const datas = {
key: keyNumber+1+"",
}
for(var i = 1; i < columnItems+1; i++) {
datas[i] = {
editable: false,
value: `Заголовок ${(keyNumber+1)}`,
};
}
this.state.data = [datas, ...this.state.data];
this.state.keyNumber = keyNumber+1;
this.setState({ data });
console.log(this.state.data, ":::: 1")
}
То есть, всё просто. Создаём новый объект и закидываем его в начало массива this.state.data. В итоге объект формируется, ряд появляется, но начинаются глюки. Теперь при нажатии на ячейки (особенно нижние) происходит чёрти что. К прмеру, жмём на 4-й ряд, а поле появляется у 2-го ряда. В консоле видно вот что: http://joxi.ru/DrlKgGjT4xQK9A?d=1.
В чём может быть проблема, и как правильно решать такие задачи?

Duego
15.10.2017
23:00:21
работает то что сверху скинули
как то можно заставить вебпак тянуть не всю либу в бандл, а только то что юзаю
Импорчу конкретно оттуда где эта переменная определена, но все равно вся библиотека падает в продакшн