- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如何访问通过存储操作异步检索的 beforeEnter 中的存储数据?
import store from './vuex/store';
store.dispatch('initApp'); // in here, async data will be fetched and assigned to the store's state
// following is an excerpt of the routes object:
{
path: '/example',
component: Example,
beforeEnter: (to, from, next) =>
{
if (store.state.asyncData) {
// the above state is not available here, since it
// it is resolved asynchronously in the store action
}
}
}
这在第一个页面加载或页面重新加载后尤其重要,此时正在获取初始数据并且路由器需要等待该数据以允许用户访问该页面。
路由器是否可以“等待”获取数据?或者结合异步 vuex 存储数据处理导航守卫的最佳方式是什么?
(哦,预填充“asyncData”不是解决方案,因为 beforeEnter Hook 需要根据数据库中的真实数据而不是默认数据做出决定)
最佳答案
您可以通过从 vuex 操作返回一个 promise 来做到这一点,正如所解释的那样 here并从 beforeEnter
本身内部调用调度。
代码应该如下所示:
import store from './vuex/store';
// following is an excerpt of the routes object:
{
path: '/example',
component: Example,
beforeEnter: (to, from, next) =>
{
store.dispatch('initApp').then(response => {
// the above state is not available here, since it
// it is resolved asynchronously in the store action
}, error => {
// handle error here
})
}
}
关于javascript - 如何访问 vue-router 中的异步存储数据以便在 beforeEnter Hook 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42579601/
我将如何使用 beforeEnter 调用函数将数据传递给相应的路由组件? 在这种情况下, beforeEnter 的目的是确认有效的不记名 token 作为 cookie 存在。 目前,我有 bef
我试图将未登录的用户从所有页面重定向到 /login .我试过 beforeEach()但是当用户使用像 /home 这样的直接 url 进入站点时它不会触发, /event . 每条路由保护 bef
Ionic 2 的 $on("$ionicView.beforeEnter", function() {}) 等价于什么? 最佳答案 现在有不同的 View 生命周期 Hook ,如 onPageWi
我正在尝试为我的子路由定义一个 beforeEnter 守卫,但我没有成功。这是我的路线配置: ... { path: '/', component: App befo
我正在尝试创建一个 SPA,其中显示奥地利每个州的经销商。例如,如果用户访问 example.com/vienna,它会显示维也纳的每个经销商。但是,如果用户访问 example.com/paris,
我使用 ionic , $ionicView.beforeEnter 和 $ionicView.enter 之间耗时超过 1s。 我如何才能找到我的代码的哪一部分花费了这么多时间? Batarang
如何访问通过存储操作异步检索的 beforeEnter 中的存储数据? import store from './vuex/store'; store.dispatch('initApp'); //
我是一名优秀的程序员,十分优秀!