2017-06-27 5 views
2

に落ちる空のオプションのパラメータは、これらは私の経路であるホームパス

this.$router.push({ 
    name : 'Search', 
    params : { 
     keyword : this.keywords // set this to empty string 
    }, 
    query: { 
     page : 1 
    } 
}) 

場合this.keywords''ですが(空の文字列) gamedb.com/(home)に戻ります。 this.keywordsにいくつかの文字がある場合、パスはgamedb.com/search/this-is-the-keywordになります。

私の予想される動作は、this.keywordsが空の場合、パスはgamedb.com/searchになります。

[VUE-ルータ]という名前のルートは "検索" におけるparamの行方不明:期待 一致する "キーワード"、 "[^ /] +?" が、受信した ""

console.logこの示し

私はすでにルートのパスの最後に疑問符を付けていませんか?私のコードで何が間違っていますか?

答えて

0

正しいことは、経路パスのパラメータに疑問符?を追加すると、そのパラメータがオプションになります。しかし、これは単にkeywordパラメータを渡さなければ、Vue Routerは不平を言うことはないということを意味します。

keywordパラメータを渡していますが、空の文字列です。 URLパラメータは空の文字列にすることはできませんので、エラーが発生しています。

this.$router.push({ 
    name : 'Search', 
    params: (this.keywords.length > 0) ? { keyword: this.keywords } : {}, 
    query: { 
    page : 1 
    } 
}); 
:あなたは this.keywordsの値が空でない場合にのみ、 this.$router.pushに渡されるオプションに paramsオブジェクトを追加する必要が

関連する問題