refactor: unregister afterEach after route changed in guard

This commit is contained in:
Clark Du 2017-12-01 18:22:25 +08:00
parent ceae5a8844
commit 7952de520c

View File

@ -168,16 +168,13 @@ async function createApp (ssrContext) {
if (process.server && ssrContext && ssrContext.url) {
await new Promise((resolve, reject) => {
router.push(ssrContext.url, resolve, () => {
let initSSR = true
// navigated to a different route in router guard
router.afterEach(async (to, from, next) => {
if (initSSR) {
ssrContext.url = to.fullPath
app.context.route = await getRouteData(to)
app.context.params = to.params || {}
app.context.query = to.query || {}
}
initSSR = false
const unregister = router.afterEach(async (to, from, next) => {
ssrContext.url = to.fullPath
app.context.route = await getRouteData(to)
app.context.params = to.params || {}
app.context.query = to.query || {}
unregister()
resolve()
})
})