私はNUXTを練習していて、チュートリアルからうまく機能しています。 NUXTミドルウェアに入ると私の失敗。ロジックは、ページが他のページにリダイレクトしている場合、ミドルウェアに入り、axiosを使用して結果をフェッチします。
middleware/search.js
_import axios from 'axios';
export default function ({ params, store }) {
console.log(store)
return axios.get(`https://iTunes.Apple.com/search?term=~${params.id}&entity=album`)
.then((response) => {
console.log(response.data.results);
store.commit('add', response.data.results)
})
}
_
ここに入力すると、_store.commit('add'...
_が発生します
未定義のプロパティ「コミット」を読み取れません
commit = undefinedとエコーします。
何が欠けていますか?私はすでにthis.$store.commit(...)
を試しましたが、まだ定義されていません。
store/index.js
_import Vuex from 'vuex'
const createStore = () => {
return new Vuex.Store({
state: {
albums: []
},
mutations: {
add (state, payload) {
state.albums = payload
}
}
})
}
export default createStore
_
上記のチュートリアルのコメントから解決策を見つけましたが、他の人も苦労している場合はここで共有したいと思います。
開発サーバーを停止する ctrl+C
次に、開発サーバーを再起動します
npm run dev
その後、VUEXはミドルウェアtnxに表示されます
開発サーバーの再起動も私にとってはうまくいきました。変更が行われたときにVuexがリロードされていないようです。
npm run dev
を実行すると、機能するはずです。