删除所有选定的行,即使我在其他页面中使用带有受控分页的 react-table
Remove all selected rows even though I'm in other page using react-table with controlled pagination
使用 react-table v7,我很难尝试删除所有选定的行,即使我在其他页面中使用 toggleAllRowsSelected 来自 hook-plugin useRowSelect.
我在服务器端使用受控分页,如文档所述,我设置 autoResetSelectedRows: false
以存储状态 selectedRowIds。因此,当我更改页面时,数据会发生变化,但我可以保持 selectedRowIds 不变。当我选中或取消选中一行时它工作正常,但我无法弄清楚如何取消选中所有行,而不仅仅是当前页面中的行,这就是 toggleAllRowsSelected做。
我做错了什么,或者是 toggleAllRowsSelected 回调中的错误?有没有办法操纵 react-table 的状态以手动更改 selectedRowIds 道具?
我是这样解决的..但我认为它可能会导致性能问题...:[=15=]
const handleUnselectAll = () => {
state.selectedRowIds = {};
toggleAllRowsSelected(false);
};
文档:
useRowSelect: https://react-table.tanstack.com/docs/api/useRowSelect#userowselect
我使用 stateReducer 选项解决了这个问题。
stateReducer: (newState, action) => {
switch (action.type) {
case 'toggleAllRowsSelected':
return {
...newState,
selectedRowIds: {},
};
default:
return newState;
}
}
使用 react-table v7,我很难尝试删除所有选定的行,即使我在其他页面中使用 toggleAllRowsSelected 来自 hook-plugin useRowSelect.
我在服务器端使用受控分页,如文档所述,我设置 autoResetSelectedRows: false
以存储状态 selectedRowIds。因此,当我更改页面时,数据会发生变化,但我可以保持 selectedRowIds 不变。当我选中或取消选中一行时它工作正常,但我无法弄清楚如何取消选中所有行,而不仅仅是当前页面中的行,这就是 toggleAllRowsSelected做。
我做错了什么,或者是 toggleAllRowsSelected 回调中的错误?有没有办法操纵 react-table 的状态以手动更改 selectedRowIds 道具?
我是这样解决的..但我认为它可能会导致性能问题...:[=15=]
const handleUnselectAll = () => {
state.selectedRowIds = {};
toggleAllRowsSelected(false);
};
文档:
useRowSelect: https://react-table.tanstack.com/docs/api/useRowSelect#userowselect
我使用 stateReducer 选项解决了这个问题。
stateReducer: (newState, action) => {
switch (action.type) {
case 'toggleAllRowsSelected':
return {
...newState,
selectedRowIds: {},
};
default:
return newState;
}
}