Hii 我得到這個錯誤 無法讀取未定義的屬性(讀取'$store')。 這是我的路由器(index.js)
。{
path: '/',
name: 'login',
組件。() => import( /* webpackChunkName: "hours" */ './views/login.vue'),
meta: {
hideNavbar: true,
},
beforeEnter: (to, from, next) => {
如果(this.$store.state.authenticated.admin === true) {
next('/home');
} else {
next(false);
}
}
在上面這段代碼中,我正在努力導航到主頁...得到這個錯誤。 here`TypeError: 不能讀取未定義的屬性(讀取'$store')
uj5u.com熱心網友回復:
在vue路由器內部,你沒有一個vue實體。因此,沒有辦法訪問this.$store.state。為了訪問你的商店,你需要將vuex納入路由器。
import store from '@/store/index.js'/span>;
然后從商店呼叫資料,你將呼叫我們剛剛匯入的商店變數。比如說
if(!store.state.user){
next('/401'/span>)。
}
對于你的情況,它會看起來像這樣:
import store from '@/store/index.js'/span>;
{
path: '/',
name: 'login',
component: () => import( /* webpackChunkName: "hours" */ './views/login.vue')。)
meta: {
hideNavbar: true,
},
beforeEnter: (to, from, next) =>/span> {
if (store.state.authenticated.admin ==true) {
next('/home')。
} else {
next(false)。
}
}
我建議你也看看這個答案。 在Router中訪問Vuex商店
uj5u.com熱心網友回復:
@MaseehaTasneem 你也許可以從next()函式中訪問內部資料,如下所示。 試試下面的方法,看看你能得到什么。你可能會做一些事情,例如:
beforeRouteEnter(to, from, next) {
next(vm => {
console.log("vue model", vm)
如果(vm.$store.state.authenticated.admin === true) {
回傳'/home'。
}
return false
})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/332734.html
標籤:
