Fix hydration of non-string dangerousSetInnerHTML.__html#13353
Merged
gaearon merged 2 commits intofacebook:masterfrom Aug 9, 2018
Merged
Fix hydration of non-string dangerousSetInnerHTML.__html#13353gaearon merged 2 commits intofacebook:masterfrom
gaearon merged 2 commits intofacebook:masterfrom
Conversation
This was referenced Aug 9, 2018
trueadm
reviewed
Aug 9, 2018
| (typeof props.dangerouslySetInnerHTML === 'object' && | ||
| props.dangerouslySetInnerHTML !== null && | ||
| typeof props.dangerouslySetInnerHTML.__html === 'string') | ||
| typeof props.dangerouslySetInnerHTML.__html != null) |
Contributor
There was a problem hiding this comment.
I don't think you intended to keep the typeof here?
Collaborator
Author
There was a problem hiding this comment.
No. Also there are other reasons why this doesn't work. Will look again.
trueadm
approved these changes
Aug 9, 2018
Contributor
trueadm
left a comment
There was a problem hiding this comment.
LGTM minus the typo (I think)
aweary
approved these changes
Aug 9, 2018
packages/react-dom/src/__tests__/ReactDOMServerIntegrationReconnecting-test.js
Show resolved
Hide resolved
Merged
This was referenced Sep 7, 2018
This was referenced Nov 1, 2018
This was referenced Sep 5, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #11789.
With this PR, non-string
dangerousInnerHTML.__htmlis now handled during hydration the same way as we handle it during a pure client-only or server-only render. Specifically, we coerce any value__htmlvalue that isn'tnullorundefinedto a string. Previously, hydration behaved inconsistently.These are the same tests run against on master:
You can see that the only ones that were failing are related to hydration. This tells us that the PR doesn't change the behavior for purely client-only or server-only renders, but it fixes the inconsistency when hydrating on top of good markup.