web-dev-qa-db-ja.com

名前付きルートのパラメータがありません:「x」が定義されている必要があります

私がこれをするかどうか

Vue.router.Push({ path: '/beats/catalog/1' }) 

またはこれ

Vue.router.Push({ name: 'BeatsCatalog', params: { page: 1 } })

同じ結果が得られます:[vue-router] missing param for named route "BeatsCatalog": Expected "page" to be defined.

ルーター:

{
        path: '/beats',
        components: {
            navbar: Navbar,
            default: { template: `<router-view/>` }
        },
        children: [{
                name: 'BeatsCatalog',
                path: 'catalog/:page',
                components: {
                    default: () => import('@/views/BeatsCatalog')
                },
                props: { default: true }
            },
            {
                path: 'upload',
                name: 'BeatsUpload',
                components: {
                    default: () => import('@/views/BeatsUpload')
                }
            },
        ],
        meta: { requiresAuth: true }
    }

問題の原因は何ですか?セットアップに問題はありません。ドキュメントのようにすべてを実行しています。ありがとう。

5
Giacomo

@Giacoma、コンポーネントBeatsCatalogのデータプロパティで、最初に読み込まれたときにページが未定義です。したがって、エラーが発生します。

したがって、これを解決するには、ルーターリンクをv-ifでラップします。

より良い説明のある同じエラーのリファレンスはここにあります:

https://github.com/vuejs/vue-router/issues/986

7
loki