cari

Rumah  >  Soal Jawab  >  teks badan

Penghala Vue cuba memadankan laluan menggunakan param sebagai nama.

<p>Saya cuba menggunakan parameter dalam laluan saya dan telah mencipta laluan berikut. </p> <pre class="brush:php;toolbar:false;">export const ConsumerRoutes = [ { laluan: '/' + import.meta.env.VITE_MODULE_ADMIN_NAME + '/consumers', meta: { requireAuth: benar, adminLayout: benar, modul: 'admin', ikon: UserCircleIcon, nav: 'Pengguna' }, kanak-kanak: [ { jalan: '', nama: 'Pengguna', komponen: () => import('../../views/admin/Consumer.vue'), }, { laluan: ':id', nama: 'Butiran Pengguna', komponen: () => import('../../views/admin/ConsumerDetails.vue'), } ], }, // { // laluan: '/' + import.meta.env.VITE_MODULE_ADMIN_NAME + '/consumers/:id', // meta: { // requireAuth: benar, // adminLayout: benar, // modul: 'admin', // excludeFromNav: benar // }, // kanak-kanak: [ // { // laluan: '', // nama: 'Butiran Pengguna', // komponen: () => import('../../views/admin/ConsumerDetails.vue'), // } // ] // } ];</pre> <p>Apabila saya cuba memasukkan /1 dalam URL, saya boleh menavigasi ke pengguna, tetapi saya mendapat ralat berikut. </p> <pre class="brush:php;toolbar:false;">vue-router.mjs:810 Ralat tidak tertangkap (dalam janji): Tiada padanan untuk {"name":"1","params":{}}</pre> <p>Walau bagaimanapun, jika saya menggunakan console.log masuk fungsi afterEach untuk mencetak laluan sasaran saya, saya mendapat objek laluan berikut. </p><p>Jadi ia tahu laluan mana yang saya akan pergi, tetapi atas sebab tertentu ia menggunakan '1' cuba mencari laluan bernama '1'. Jika saya menukar nama laluan saya kepada 1 ia boleh dimuatkan dengan baik. </p><p>Saya telah cuba memisahkan laluan saya daripada laluan kanak-kanak kepada laluan bebas tetapi itu tidak mengubah apa-apa. </p><p><br /></p> <hr /> <p>Masalah telah diselesaikan dan tiada kaitan dengan laluan yang saya tetapkan. </p>
P粉826429907P粉826429907489 hari yang lalu696

membalas semua(1)saya akan balas

  • P粉817354783

    P粉8173547832023-07-28 15:48:22

    Masalah yang anda alami mungkin kerana Penghala Vue cuba memadankan berdasarkan nama laluan dan bukannya laluan.

    Anda cuba menavigasi ke /consumers/1, menjangkakan "1" sebagai parameter laluan (:id). Tetapi Vue Router mentafsirkan "1" sebagai nama laluan, maka mesej ralat yang anda lihat.

    Pastikan anda menavigasi menggunakan laluan laluan dan bukan nama laluan. Dalam cangkuk afterEach anda, gunakan kod berikut:


    router.afterEach((to, from) => {
      router.push(to.path);
    });

    Apabila menavigasi secara manual, gunakan laluan ('/consumers/1'), bukan nama. Jika anda masih menghadapi masalah, ia mungkin disebabkan oleh bahagian lain kod anda.

    Berikut ialah contoh kod untuk menavigasi ke laluan mengikut nama:


    router.push({ name: 'Consumer Details', params: { id: 1 } })

    Selain itu, berikut ialah contoh kod untuk menavigasi ke laluan melalui laluan:

    router.push('/consumers/1')

    Sepatutnya berguna

    balas
    0
  • Batalbalas