すべてのアプリケーションと同様に、いくつかのルートがあります。例えば(router/index.js
抜粋):vue.js:非同期値のルートガード待機
[{
path: '/reporting',
name: 'Reporting',
component: reporting,
meta: {
adminOnly: true
}
},
...]
reporting
にアクセスするには、ユーザがvuexストア内のプロパティである、管理者権限を持っている必要があるときあなたは、ルート定義に見ることができるように。問題:このプロパティは非同期であり、ガードで最初にアクセスするときはもちろん間違っています。私のガードはそれを待つことができますか?
ガード:
if (to.matched.some(route => route.meta.adminOnly)) {
if (store.getters.userInfo.isAdmin) {
next()
} else {
next('/')
}
} else {
next()
}
どのようにこのプロパティを取得しますか? – Cobaltway
これはinitのvuexストアで行われます。 – sandrooco
ログイン操作が解決される前にアプリを起動しないでください。行動が約束を返すとき、あなたは容易になるはずです。 –