diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js
index f97ade7bf..385cb6045 100644
--- a/src/composables/useArrayData.js
+++ b/src/composables/useArrayData.js
@@ -130,6 +130,10 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
         delete store[option];
     }
 
+    function reset(opts = []) {
+        if (arrayDataStore.get(key)) arrayDataStore.reset(key, opts);
+    }
+
     function cancelRequest() {
         if (canceller) {
             canceller.abort();
@@ -245,5 +249,6 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
         updateStateParams,
         isLoading,
         deleteOption,
+        reset,
     };
 }
diff --git a/src/stores/useArrayDataStore.js b/src/stores/useArrayDataStore.js
index ebe32f8d0..0fe16d075 100644
--- a/src/stores/useArrayDataStore.js
+++ b/src/stores/useArrayDataStore.js
@@ -3,36 +3,47 @@ import { defineStore } from 'pinia';
 
 export const useArrayDataStore = defineStore('arrayDataStore', () => {
     const state = ref({});
+    const defaultOpts = {
+        filter: {},
+        userFilter: {},
+        userParams: {},
+        url: '',
+        limit: 10,
+        skip: 0,
+        order: '',
+        data: ref(),
+        isLoading: false,
+        userParamsChanged: false,
+        exprBuilder: null,
+        searchUrl: 'params',
+        navigate: null,
+    };
 
     function get(key) {
         return state.value[key];
     }
 
     function set(key) {
-        state.value[key] = {
-            filter: {},
-            userFilter: {},
-            userParams: {},
-            url: '',
-            limit: 10,
-            skip: 0,
-            order: '',
-            data: ref(),
-            isLoading: false,
-            userParamsChanged: false,
-            exprBuilder: null,
-            searchUrl: 'params',
-            navigate: null,
-        };
+        state.value[key] = defaultOpts;
     }
 
     function clear(key) {
         delete state.value[key];
     }
 
+    function reset(key, opts = []) {
+        let obj = state.value[key];
+        if (!opts.length) obj = defaultOpts;
+        else
+            for (const opt in opts) {
+                if (Object.hasOwn(obj, opt)) obj[opt] = defaultOpts[opt];
+            }
+    }
+
     return {
         get,
         set,
         clear,
+        reset,
     };
 });