#vue.js #axios #vuex
#vue.js #axios #vuex
Вопрос:
Привет, я пытаюсь получить идентификатор от маршрутизатора и добавить его к методу получения axios. Это код из store.js В обычном компоненте Vue вы можете сделать что-то вроде этого: id: this. $router.id но в vuex store не работает
#How can I do the same thing but in Vuex
import Vue from 'vue'
import Vuex from 'vuex'
import Axios from 'axios';
import router from './router'
Vue.use(Vuex)
Vue.use(Axios)
Vue.use(router)
export default new Vuex.Store({
// data() {
// return {
// m_id:this.$route.params.m_id
// }
// },
// m_id : this.$route.params.m_id,
state: {
video_key: [],
},
mutations: {
updateInfo (state , video_key){
state.video_key = video_key
}
},
getters:{
m_id : this.route.params.m_id
},
actions: {
fetchData({commit,getters}){
axios.get(`https://api.themoviedb.org/3/movie/${this.m_id}/videos?api_key=7bc75e1ed95b84e912176b719cdeeff9amp;language=en-US`)
.then(response =>{
commit('updateInfo',response.data.results[0].key)
})
}
}
})
Комментарии:
1. Попробуйте использовать
router.currentRoute.params.m_id
2. где я должен заменить его в getters? или в axios.get?
3. Работает, спасибо, но каким-то образом он извлекает мои данные из предыдущего маршрута, когда я делаю запрос из axios, я получаю правильный идентификатор с правильными данными. Как только я обновляю страницу, фактическое содержимое заменяется из api правильным содержимым
4. Рад, что смог помочь. Пожалуйста, отметьте мой ответ как правильный, чтобы другие люди знали ответ. Спасибо!
Ответ №1:
Замените this.route.params.m_id
на router.currentRoute.params.m_id
.
Вы можете найти более подробную информацию о свойствах экземпляра маршрутизатора здесь: ссылка