diff --git a/src/components/common/VnSection.vue b/src/components/common/VnSection.vue
index 16ea79047..cacb3d551 100644
--- a/src/components/common/VnSection.vue
+++ b/src/components/common/VnSection.vue
@@ -2,9 +2,9 @@
 import RightMenu from './RightMenu.vue';
 import VnSearchbar from 'components/ui/VnSearchbar.vue';
 import VnTableFilter from '../VnTable/VnTableFilter.vue';
-import { onBeforeMount, computed, ref } from 'vue';
+import { onBeforeMount, onMounted, onUnmounted, computed, ref } from 'vue';
 import { useArrayData } from 'src/composables/useArrayData';
-import { useRoute } from 'vue-router';
+import { useRoute, useRouter } from 'vue-router';
 import { useHasContent } from 'src/composables/useHasContent';
 
 const $props = defineProps({
@@ -47,16 +47,12 @@ const $props = defineProps({
 });
 
 const route = useRoute();
+const router = useRouter();
+
 let arrayData;
 const sectionValue = computed(() => $props.section ?? $props.dataKey);
-const isMainSection = computed(() => {
-    const isSame = sectionValue.value == route.name;
-    if (!isSame && arrayData) {
-        arrayData.reset(['userParams', 'filter']);
-        arrayData.setCurrentFilter();
-    }
-    return isSame;
-});
+const isMainSection = ref(false);
+
 const searchbarId = 'section-searchbar';
 const hasContent = useHasContent(`#${searchbarId}`);
 
@@ -68,7 +64,23 @@ onBeforeMount(() => {
             ...$props.arrayDataProps,
             navigate: $props.redirect,
         });
+    checkIsMain();
 });
+
+onMounted(() => {
+    const unsubscribe = router.afterEach(() => {
+        checkIsMain();
+    });
+    onUnmounted(unsubscribe);
+});
+
+function checkIsMain() {
+    isMainSection.value = sectionValue.value == route.name;
+    if (!isMainSection.value && arrayData) {
+        arrayData.reset(['userParams', 'filter']);
+        arrayData.setCurrentFilter();
+    }
+}
 </script>
 <template>
     <slot name="searchbar">