У меня есть ботнав Vuetify; каждый элемент активируется по определенному пути маршрутизатора, я хочу деактивировать элемент, когда он находится по другому пути.
Я пытался установить active.sync на -1, когда я хочу деактивировать вкладку, это сработает, если я никогда не активирую какой-либо элемент в ботнаве, но если я активирую элемент, а затем снова установлю active.sync=-1, он автоматически активируется. первый пункт:
<v-bottom-nav
:active.sync = "bottomNav"
:value = "true"
shift
absolute
>
<v-btn
color = "teal"
flat
value = "recent"
>
<span>Recent</span>
<v-icon>history</v-icon>
</v-btn>
<v-btn
color = "teal"
flat
value = "favorites"
>
<span>Favorites</span>
<v-icon>favorite</v-icon>
</v-btn>
<v-btn
color = "teal"
flat
value = "nearby"
>
<span>Nearby</span>
<v-icon>place</v-icon>
</v-btn>
</v-bottom-nav>
В сценарии:
watch:{
$route:function(to, from){
switch(to.path){
case "/0":
this.bottomNav=0;
break
case "/1":
this.bottomNav=1;
break
case "/2":
this.bottomNav=2;
break
default: this.bottomNav=-1
}
}
}
Я нашел решение, которое работает, установив фиктивный скрытый элемент в ботнаве и установив для v-show этого элемента значение false, когда я хочу деактивировать все элементы, я активирую этот невидимый элемент, и это приводит к тому, что я хочу :
Фиктивный предмет:
<v-bottom-nav
:active.sync = "bottomNav"
//more stuff
>
//other items
<v-btn v-show = "0" value = "inactivate"></v-btn>
</v-bottom-nav>
И делайте это всякий раз, когда я хочу деактивировать все элементы в сценарии:
this.bottomNav = "inactivate"
Это РАБОТАЕТ, но это как-то хакерски, есть ли более формальный/элегантный способ сделать это?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)

