Теперь ваша созданная функция отправляет действие checkMovieStore с идентификатором, который выполняет http-вызов, после завершения которого хранилище обновляет значение.
го, как я получил детали фильма из скрипта компонента. Функция сначала проверяет, совпадает ли идентификатор фильма магазина с идентификатором фильма маршрута. Если это то же самое, то не получайте фильм из API сервера, иначе не получайте фильм из API сервера.
Работало нормально. Но сейчас я пытаюсь получить детали фильма из мутации магазина. Однако я получаю ошибку
Uncaught TypeError: Невозможно прочитать свойство '$ route' из неопределенного
Как использовать vue-router($route)
получить доступ к параметрам и vue-ресурсу($http)
получить с сервера API в vuex store?
store.js:
export default new Vuex.Store({
state: {
movieDetail: {},
},
mutations: {
checkMovieStore(state) {
const routerMovieId = this.$route.params.movieId;
const storeMovieId = state.movieDetail.movie_id;
if (routerMovieId != storeMovieId) {
let url = "http://dev.site.com/api/movies/movie-list/" + routerMovieId + "/";
this.$http.get(url)
.then((response) => {
state.movieDetail = response.data;
})
.catch((response) => {
console.log(response)
});
}
},
},
});
компонентный скрипт:
export default {
computed: {
movie() {
return this.$store.state.movieDetail;
}
},
created: function () {
this.$store.commit('checkMovieStore');
},
}