Skip to content
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

fix: mergeHook when parentVal is not an array #10877

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

jeanphilippeds
Copy link

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:

This is related to a vue-router issue.



A bit of context:

VueRouter comes with 3 hooks (beforeRouteEnter, beforeRouteLeave, beforeRouteUpdate).
The merging strategy to deal with inheritance with these hooks is defined in src/install.js in VueRouter.
The chosen strategy is mergeHook (in vue/src/core/util/options.js, the same as the created hook of Vue).

As you can see in the code, mergeHook is expecting a different type parentVal or childVal. If parentVal ends up not being an array, the code crashes.

The fix we propose is to put parentVal into an array before calling concat, if parentVal is not an array.

@posva posva changed the title Fix mergeHook when parentVal is not an array fix: mergeHook when parentVal is not an array Sep 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants