fix(runtime-core): avoid infinite loop rendering caused by setting props multiple times #3384
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.
Fix: #3371
I made a minimal reproduction https://codesandbox.io/s/vigilant-euler-7q6j0?file=/src/index.ts. Open the link and check the comments in the code
Parent
component accesses the props of theChild
component and is tracked by theChild
component's props.Child
component, theChild
component modifies the reactivity data of theParent
component.Parent
component re-rendering and checks whether the Child component needs to be updated.Child
component needs to be updated, and set the full propsprops.foo
, it needs to be cast to a boolean valueprops.foo
been modified twice, once is set to the empty string, and another is set to a boolean value. here and here