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(transition): check existence of el.parentNode, fix #8199 #8422

Merged
merged 2 commits into from
Oct 24, 2018

Conversation

sodatea
Copy link
Member

@sodatea sodatea commented Jun 27, 2018

Fix #8199
If the new parentNode gets a textContent or innerHTML property during patching, the transition node would have been detached early, which means el.parentNode no longer exists.
So this existential check is necessary.

This is an imperfect fix because while errors are suppressed, transition animations still get lost.
It is due to the different mechanism of v-html and VDOM element patching. But fixing that would be much more complex and I don't think we'd bother fixing such an edge case.

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:

If the new parentNode gets a `textContent` or `innerHTML` property during
patching, the `transition` node would have been detached early, which means
`el.parentNode` no longer exists.
@sodatea
Copy link
Member Author

sodatea commented Jun 28, 2018

Oops, e2e test fails due to a bug of unpkg.com
mjackson/unpkg#118

@yyx990803 yyx990803 merged commit 0b16927 into vuejs:dev Oct 24, 2018
f2009 pushed a commit to f2009/vue that referenced this pull request Jan 25, 2019
fix vuejs#8199

* fix(transition): check existence of `el.parentNode`

If the new parentNode gets a `textContent` or `innerHTML` property during
patching, the `transition` node would have been detached early, which means
`el.parentNode` no longer exists.

* fix(vdom): should not reuse nodes with `textContent` / `innerHTML` props
aJean pushed a commit to aJean/vue that referenced this pull request Aug 19, 2020
fix vuejs#8199

* fix(transition): check existence of `el.parentNode`

If the new parentNode gets a `textContent` or `innerHTML` property during
patching, the `transition` node would have been detached early, which means
`el.parentNode` no longer exists.

* fix(vdom): should not reuse nodes with `textContent` / `innerHTML` props
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.

"Cannot read property '_pending' of null" when using transition component.
2 participants