bugfix> vue.js > 投稿

エラーが発生した場合、あるページから404ページにリダイレクトしたい。動作しますが、不可解なエラーがあります。

Profile.vue

methods: {
  async getProfile(id) {
    try {
      const response = await this.$store.dispatch('GET_USER_PROFILE_BY_ID', { id });
      this.userProfile = response.data.data;
    } catch (err) {
      this.$log.error(err);
      await this.$router.push({ name: 'not-found' });
    }
  },
},

router.js

{
  path: '*',
  name: 'not-found',
  component: () => import(/* webpackChunkName: "content-chunk" */ './views/site/404.vue'),
},

404.vue

export default {
  name: 'not-found',
  components: {
    BRow,
    BCol,
  },
};

そして、私はブラウザコンソールでこのエラーを見ることができます

vue-router.esm.js:16 [vue-router] missing param for named route "not-found": Expected "0" to be defined

プロパティまたはパラメータ0はありません。私のアプローチは正しいですか?

回答 2 件
  • ルーターは、代わりに*プレースホルダーを使用するURLを認識していません。

    指定したパスでyout404ルートを定義するか、プッシュするパラメーターを追加できます。

    または、絶対URLを使用してthis。$router.push( '/ 404')を呼び出すだけです。

  • パス * 提供されたリンクがルートで定義されていない場合のリダイレクトに使用されます。404ページにリダイレクトするには、次のような既存のパスをプッシュできません。 push('/this-path-not-exists') またはのような別のパスを使用します path:'/not-found' 定義する必要がありますコンポーネントとして404ページがあります

あなたの答え