-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
fix: diff of list [a,b,c,d] and [e,b,b,f],error happened and make vue-router cant update #13110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
When updating an existing list, if the same key exists in the new list and the node with the same key value also exists in the old list, after diffing, it will be marked as undefined in oldCh, causing the new list with the same key to report an error in isSameNode (read 'key' from undefined)
At the same time, this issue also causes the vue router to be unable to jump normally, as the watcher updates when the "app. _route" changes. In the "watcher.run", due to the execution error and capture of "this. getter. call (vm, vm)", the subsequent "resetSchedulerState" cannot be executed, and the "waiting" state remains true. Finally, the "registerInstance" cannot be executed. Although the URL is updated, the page cannot find "instances" and cannot be updated
test-demo
vue2.7_bug-test.zip
What kind of change does this PR introduce? (check at least one)
Does this PR introduce a breaking change? (check one)
If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:
main
branch for v2.x (or to a previous version branch)fix #xxx[,#xxx]
, where "xxx" is the issue number)If adding a new feature, the PR's description includes:
Other information: