diff --git a/packages/ra-core/src/controller/usePrevNextController.spec.tsx b/packages/ra-core/src/controller/usePrevNextController.spec.tsx
new file mode 100644
index 00000000000..627c3d8d14d
--- /dev/null
+++ b/packages/ra-core/src/controller/usePrevNextController.spec.tsx
@@ -0,0 +1,55 @@
+import * as React from 'react';
+import { render, waitFor } from '@testing-library/react';
+
+import { CoreAdminContext, ResourceContextProvider } from '../core';
+import { testDataProvider } from '../dataProvider';
+import { RecordContextProvider } from './record';
+import { memoryStore } from '../store';
+import { usePrevNextController } from './usePrevNextController';
+
+const UsePrevNextController = props => {
+ usePrevNextController(props);
+ return null;
+};
+
+describe('usePrevNextController', () => {
+ it('should ignore stored list parameters when storeKey is false', async () => {
+ const dataProvider = testDataProvider({
+ getList: jest.fn().mockResolvedValue({ data: [], total: 0 }),
+ });
+ const store = memoryStore({
+ 'posts.listParams': {
+ filter: { published: true },
+ order: 'DESC',
+ sort: 'title',
+ page: 2,
+ perPage: 25,
+ displayedFilters: {},
+ },
+ });
+
+ render(
+
+
+
+
+
+
+
+ );
+
+ await waitFor(() => {
+ expect(dataProvider.getList).toHaveBeenCalledWith('posts', {
+ pagination: { page: 1, perPage: 1000 },
+ sort: { field: 'id', order: 'ASC' },
+ filter: { featured: true },
+ meta: undefined,
+ signal: undefined,
+ });
+ });
+ });
+});
diff --git a/packages/ra-core/src/controller/usePrevNextController.ts b/packages/ra-core/src/controller/usePrevNextController.ts
index 29149df0d47..2d0d1be8962 100644
--- a/packages/ra-core/src/controller/usePrevNextController.ts
+++ b/packages/ra-core/src/controller/usePrevNextController.ts
@@ -130,17 +130,19 @@ export const usePrevNextController = (
);
}
- const [storedParams] = useStore(
+ const defaultParams = {
+ filter: filterDefaultValues,
+ order: initialSort.order,
+ sort: initialSort.field,
+ page: 1,
+ perPage: 10,
+ displayedFilters: {},
+ };
+ const [storeParams] = useStore(
storeKey || `${resource}.listParams`,
- {
- filter: filterDefaultValues,
- order: initialSort.order,
- sort: initialSort.field,
- page: 1,
- perPage: 10,
- displayedFilters: {},
- }
+ defaultParams
);
+ const storedParams = storeKey === false ? defaultParams : storeParams;
const dataProvider = useDataProvider();
const queryClient = useQueryClient();