在使用Antd组件库的Table组件中,可以通过Redux来保存表格的排序信息。下面是一个使用Redux保存表格排序的示例代码:
// actions.js
export const SET_SORTER = 'SET_SORTER';
export const setSorter = (sorter) => {
return {
type: SET_SORTER,
sorter
};
};
// reducer.js
import { SET_SORTER } from './actions';
const initialState = {
sorter: null
};
export const reducer = (state = initialState, action) => {
switch (action.type) {
case SET_SORTER:
return {
...state,
sorter: action.sorter
};
default:
return state;
}
};
import { createStore, combineReducers } from 'redux';
import { reducer as tableReducer } from './table/reducer';
const rootReducer = combineReducers({
table: tableReducer
});
const store = createStore(rootReducer);
export default store;
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Table } from 'antd';
import { setSorter } from './table/actions';
const columns = [
{
title: 'Name',
dataIndex: 'name',
sorter: true
},
{
title: 'Age',
dataIndex: 'age',
sorter: true
},
{
title: 'Address',
dataIndex: 'address',
sorter: true
}
];
const TableComponent = ({ dataSource, sorter, setSorter }) => {
useEffect(() => {
// 根据Redux中的sorter来设置表格的排序
if (sorter) {
// 根据sorter的值来进行排序操作
}
}, [sorter]);
const handleTableChange = (pagination, filters, sorter) => {
// 将排序信息保存到Redux中
setSorter(sorter);
};
return (
);
};
const mapStateToProps = (state) => {
return {
sorter: state.table.sorter
};
};
const mapDispatchToProps = {
setSorter
};
export default connect(mapStateToProps, mapDispatchToProps)(TableComponent);
在上述示例中,通过Redux中的sorter
来保存表格的排序信息,并在组件的useEffect
中根据sorter
的值进行排序操作。在表格的handleTableChange
事件中,将排序信息保存到Redux中,然后通过connect
函数将Redux中的sorter
值传递给表格组件,并将setSorter
方法映射到组件的props
中,以便在handleTableChange
事件中调用。