2017-09-09 54 views
0

私はnuxt.jsを使用しています。nuxt.js(vue.js)では、リフレッシュ(F5)でパラメータが渡されません

ページコンポーネントのasyncData()からaxiosにデータをロードします。

async asyncData (context) { 
    const name = context.route.params.name 
    const response = await axios.get ('/ users /' + name) 
    return { 
    user: response.data.info 
    } 
} 

このページに移動すると、上記のコードは正常に動作します。あなたは、このページのコンポーネントに(F5)を更新する場合

しかし、

const name = context.route.params.name 

は名前でデータを取得します。

const response = await axios.get ('/ users /' + name) 

パラメータには名前は渡されません。

つまり、パラメータはアキシャルに渡されず、サーバ側では はパラメータ値を受け取りません。

上記の問題を解決するために、データはmounted()から アキシオにロードされました。

なぜasyncDataが問題を引き起こすのですか?

答えて

0

routerは必要ありません。 Nuxtには、パラメータをキャッチするヘルパーが含まれています。

ページ・ファイルの名前は、PARAMを取得するには、次に_name.vue
でなければならない、あなたは直接context.params.nameを使用することができます。

ダイナミックルートに関するドキュメント読む:もう一つのポイントhttps://nuxtjs.org/guide/routing#dynamic-routes


を、あなたのコードを簡素化するためにES6によって提供される利点を享受;-)

async asyncData ({ params }) { 
    const { data } = await axios.get ('/users/' + params.name) 
    return { 
    user: data.info 
    } 
} 
+0

番号の意味nameの値は単なる変数です... uri paramsをインポートするとき、ページ上のrefresh(F5)はその値をAxiosに転送することができません。 – hyeokluv

+0

"uri params"について、 "クエリパラメータ"と言いたいときは? https://www.rankwatch.com/learning/sites/default/files/2.jpg –

+0

私は "uri params"と言っています ":id" of "/ users /:id"と言います。この値をロードすることは問題ありません。しかし、Axiosリクエストを行うときにこの値を送るのに問題があります。この値は渡されません。取得要求でサーバーから送信されたパラメーターを記録すると、空白の値が出力されます。 – hyeokluv

関連する問題