【发布时间】:2018-03-06 14:22:51
【问题描述】:
这是我的混音
export default {
created () {
if (!this.$store.getters.isAuthenticated) {
this.$router.replace('/start')
}
}
}
这是我的组件:-
import Auth from '../auth'
export default {
mixins: [Auth],
computed: {
orders () {
return this.$store.getters.orders
}
},
mounted () {
this.$store.dispatch('getOrders')
}
}
商店:-
async getOrders ({ commit, state }) {
const res = await axios.get(`${API_URL}/orders`, {
headers: {
'authorization': state.currentUser.token
}
})
commit('setOrders', res.data)
}
我面临的问题是,虽然当我转到'/orders' 时它确实重定向到'/start',但它也开始从mounted 钩子中获取订单,并且由于currentUser 为空,它给出了一个TypeError 那个Cannot read property 'token' of null。虽然我可以通过检查currentUser 是否设置来保护我的getOrders 函数,但是我必须在许多其他函数中执行此操作。我想要发生的是,在 created 挂载后不应该调用挂钩或任何其他人更了解的技术?
【问题讨论】:
-
您应该在
getOrders中检查currentUser。
标签: vue.js vuejs2 vue-router vuex