fix(vue-app): check whether route exists within nuxt app before replacing (#9431)

[release]
This commit is contained in:
Daniel Roe 2021-06-14 14:54:36 +01:00 committed by GitHub
parent 39f785967e
commit 35c6ac411d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -270,7 +270,12 @@ async function createApp(ssrContext, config = {}) {
// Wait for async component to be resolved first
await new Promise((resolve, reject) => {
router.replace(app.context.route.fullPath, resolve, (err) => {
const { route } = router.resolve(app.context.route.fullPath)
// Ignore 404s rather than blindly replacing URL
if (!route.matched.length && process.client) {
return resolve()
}
router.replace(route, resolve, (err) => {
// https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js
if (!err._isRouter) return reject(err)
if (err.type !== 2 /* NavigationFailureType.redirected */) return resolve()