Привет, ребята, мне нужна помощь с моим столом в antd
и reactjs
. Поэтому моя проблема заключается в том, что мне нужно отсортировать источник данных внутри SessionStorage, но после этого мои кнопки сортировки перестали работать.
до сортировки сеанса я использовал только функцию сортировки, но после добавления sortOrder моя таблица взорвалась :)))
Я пытаюсь проверить, используется ли какой-либо из ключей столбца, но это не решает мою проблему.
Надеюсь, кто-то из вас может мне помочь
PS. в моем проекте у меня 14 (или более) таблиц, и мне нужно, чтобы все они работали одинаково.
constructor(props) {
super(props);
this.state = {
sortedInfoAttivitaSPR: null,
sortedInfoAttivitaSG: null,
sortedInfoAttivitaSS: null,
};
}
componentDidMount() {
let p = this.props;
const params = this.props.Routing.match.params;
this.props.form.validateFields();
if (sessionStorage.getItem('sortedInfoAttivitaSPR')) {
/* this.setState.order = JSON.parse(sessionStorage.getItem('sorter')) */
this.setState({ sortedInfoAttivitaSPR: JSON.parse(sessionStorage.getItem('sortedInfoAttivitaSPR')) });
} else if (sessionStorage.getItem('sortedInfoAttivitaSG')) {
this.setState({ sortedInfoAttivitaSG: JSON.parse(sessionStorage.getItem('sortedInfoAttivitaSG')) });
} else if (sessionStorage.getItem('sortedInfoAttivitaSS')) {
this.setState({ sortedInfoAttivitaSS: JSON.parse(sessionStorage.getItem('sortedInfoAttivitaSS')) });
}
}
const columnsAttivitaSPR = [
{
title: "Cod.",
width: 90,
dataIndex: "codiceAttivita",
key: "codiceAttivitaSPR",
sorter: (a, b) => parseInt(a.codiceAttivita) - parseInt(b.codiceAttivita),
sortOrder: (sortedInfoAttivitaSPR.columnKey === 'codiceAttivitaSPR' && sortedInfoAttivitaSPR.order),
render: (text, record) => <span>{record.codiceAttivita}</span>,
},
];
<Table_
onChange={this.handleChangeSorting}
className={columnClassStyle + ""}
title={() => this.getTitleTableAttivita("Attività", programma, progetto)}
columns={s.columnsAttivita}
dataSource={s.dataSourceAttivita}
loading={s.loadingTabellaAttivita}
pagination={false}
bordered={false}
scroll={{
x: 720
}}
/>
handleChangeSorting = (pagination, filters, sorter, extra) => {
// console.log('params PAGINATION ', pagination);
// console.log('params FILTERS ', filters);
// console.log('params SORTER ', sorter);
// console.log('params EXTRA', extra);
if (this.state.tipologiaPagina === 'SchedaProgressReport') {
this.setState({ sortedInfoAttivitaSPR: sorter });
sessionStorage.setItem('sortedInfoAttivitaSPR', JSON.stringify(sorter));
} else if (this.state.tipologiaPagina === 'SchedaGenerale') {
this.setState({ sortedInfoAttivitaSG: sorter });
sessionStorage.setItem('sortedInfoAttivitaSG', JSON.stringify(sorter));
} else if (this.state.tipologiaPagina === 'SingolaScheda') {
this.setState({ sortedInfoAttivitaSS: sorter });
sessionStorage.setItem('sortedInfoAttivitaSS', JSON.stringify(sorter));
}
// console.log('ORDEEEEEEEEEEEEEEEEEEEER >>>>>>>>>>>>>>', this.state.sortedInfoAttivitaSPR);
}