gpt4 book ai didi

javascript - 在Vue router中,为什么会出现这种情况呢? this$1.pending !== 路线

转载 作者:行者123 更新时间:2023-11-28 03:34:07 24 4
gpt4 key购买 nike

在大多数情况下,当我使用 this.$router.push() 时,一切正常。但是,在一种情况下,我这样做会引发异常。页面变化得很好 - 只是消息 vue-router.esm.js?8c4f:2007 Uncaught (in Promise) 出现在控制台中。

我认为这条特定路线的调用方式与其他路线没有什么不同。

下面的代码是路由器中失败的地方。 this$1.pending1route 都是对象。我在那里放置了一个断点并检查了以下内容: JSON.stringify(this$1.pending) === JSON.stringify(route) 并且返回 true,因此它们具有相同的数据。

在 javascript 中,除非对象相同,否则不认为对象相等,但我不知道为什么,在这种情况下,对象是克隆而不是相同。

  runQueue(queue, iterator, function () {
var postEnterCbs = [];
var isValid = function () { return this$1.current === route; };
// wait until async components are resolved before
// extracting in-component enter guards
var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);
var queue = enterGuards.concat(this$1.router.resolveHooks);
runQueue(queue, iterator, function () {
if (this$1.pending !== route) { // EXCEPTION ON THIS LINE
return abort()
}
this$1.pending = null;
onComplete(route);
if (this$1.router.app) {
this$1.router.app.$nextTick(function () {
postEnterCbs.forEach(function (cb) {
cb();
});
});
}
});
});

最佳答案

这并不完全是一个答案,但这是对遇到同样问题的其他人的讨论:https://github.com/vuejs/vue-router/issues/2932

听起来似乎没有解决方案,但由于它看起来无害(除了控制台中的消息),所以我现在不担心它。

关于javascript - 在Vue router中,为什么会出现这种情况呢? this$1.pending !== 路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57897511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com