fix(Link): reactivity issue with active prop

Fixes nuxt/nuxt.com#1432
This commit is contained in:
Benjamin Canac
2023-11-22 15:24:36 +01:00
parent dd55b4f602
commit 15a40f53f2

View File

@@ -21,7 +21,7 @@
:role="disabled ? 'link' : undefined" :role="disabled ? 'link' : undefined"
:rel="rel" :rel="rel"
:target="target" :target="target"
:class="resolveLinkClass(route, $route, { isActive, isExactActive })" :class="active ? activeClass : resolveLinkClass(route, $route, { isActive, isExactActive })"
@click="(e) => !isExternal && navigate(e)" @click="(e) => !isExternal && navigate(e)"
> >
<slot v-bind="{ isActive: exact ? isExactActive : isActive }" /> <slot v-bind="{ isActive: exact ? isExactActive : isActive }" />
@@ -69,10 +69,6 @@ export default defineComponent({
}, },
setup (props) { setup (props) {
function resolveLinkClass (route, $route, { isActive, isExactActive }: { isActive: boolean, isExactActive: boolean }) { function resolveLinkClass (route, $route, { isActive, isExactActive }: { isActive: boolean, isExactActive: boolean }) {
if (props.active) {
return props.activeClass
}
if (props.exactQuery && !isEqual(route.query, $route.query)) { if (props.exactQuery && !isEqual(route.query, $route.query)) {
return props.inactiveClass return props.inactiveClass
} }