Conversation

loadingjoke

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

The PR fulfills these requirements:

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

@loadingjoke

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)

@loadingjoke

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

@loadingjoke

test-demo
vue2.7_bug-test.zip

@loadingjokeloadingjoke changed the title fix: diff时新节点存在key重复并且旧节点也和该key重复 fix: diff of list [a,b,c,d] and [e,b,b,f],error happened and make vue-router cant update Nov 3, 2023
Sign up for free to join this conversation on . Already have an account? Sign in to comment
None yet
None yet

Successfully merging this pull request may close these issues.