Dalam apl saya, saya telah menyediakan komponen navigasi bawah seperti ini:
<v-bottom-navigation v-else background-color="overlay" grow app color="primary" > <v-btn v-for="(route, key) in routes" ref="link" :key="'route' + key" :to="route.to" min-width="48" class="px-0" > <span v-if="$vuetify.breakpoint.smAndUp">{{ route.name }}</span> <v-icon>{{ route.icon }}</v-icon> </v-btn> </v-bottom-navigation>
Ini berfungsi hebat dan saya boleh menggunakannya untuk menavigasi dalam apl saya seperti yang diharapkan. Apabila butang dalam navigasi bahagian bawah diklik, status butang dikemas kini untuk menunjukkan aktif (warna utama).
Laluan saya ditakrifkan seperti berikut:
routes: [ { icon: mdiViewDashboard, name: 'Dashboard', to: '/dashboard' }, { icon: mdiCart, name: 'Orders', to: '/orders' }, { icon: mdiDolly, name: 'Receiving', to: '/receiving' }, { icon: mdiClipboardText, name: 'Tasks', to: '/tasks' }, { icon: mdiTruck, name: 'Deliveries', to: '/deliveries' }, ],
Saya juga mempunyai laluan tambahan /settings
yang bukan sebahagian daripada navigasi bawah tetapi ditakrifkan pada bar tajuk aplikasi saya seperti ini:
<v-btn aria-label="Settings" icon to="/settings" > <v-icon>{{ mdiCog }}</v-icon> </v-btn>
Memandangkan butang tetapan/pautan penghalaan bukan sebahagian daripada navigasi bawah, apabila saya mengklik pada butang tetapan, ia melumpuhkan keadaan aktif butang navigasi bawah, yang betul kerana ia bukan sebahagian daripada navigasi bawah.
Di sinilah tingkah laku pelik berlaku:
Jika saya berada dalam laluan yang ditentukan dalam navigasi bahagian bawah dan saya paksa muat semula halaman, saya muat semula ke lokasi yang betul. Dari sini, jika saya mengklik butang tetapan, penghala menunjukkan tetapan, tetapi status lama navigasi bawah masih menunjukkan sebagai aktif. Ini hanya berlaku pada muat semula paksa, jika saya memilih laluan navigasi bawah dan kemudian pergi ke tetapan, ia mengalih keluar keadaan aktif dari butang navigasi bawah.
Dalam penyelidikan saya, saya fikir ini mungkin masalah dengan exact
sifat pautan penghalaan, tetapi ia nampaknya tidak memberi sebarang perbezaan.
Selain itu, saya menetapkan titik putus untuk menunjukkan bar navigasi bawah dalam saiz kecil dan ke bawah, jika saya meregangkan tetingkap untuk menyembunyikan bar navigasi bawah dan kemudian mengecilkan tetingkap untuk dipaparkan semula, apabila komponen ditunjukkan semula ia mempunyai keadaan yang betul .
Memuat semula halaman bukanlah satu-satunya cara untuk menghasilkan semula ralat ini. Butang dalam kumpulan navigasi kelihatan melepasi padanan tepat
VItemGroup
逻辑和VBtn的routable
mixin进行切换。您可以通过点击任何导航按钮两次并在此之后路由到/settings
来复制该问题。如果您检查处于该状态的元素,则活动类v-btn--active
会重复3次。路由到另一个页面只会删除v-btn--active v-btn--active
, manakala butang ketiga kekal pada elemen.Jelas sekali, tingkah laku ini tidak dijangka.
Tetapi penyelesaiannya sangat mudah. Meletakkan setiap butang pada sebarang nilai selain daripada
active-class
属性设置为除'v-btn--active'
akan berjaya.Jadi, sebagai contoh: