You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To reproduce this issue, two conditions must be met
Both slot and scopedSlot are passed to the parent component
The parent component passes $scopedSlots to the child component
After deconstructing $scopedSlots this issue resolved, but this issue is important for library developers because passing $scopedSlots is a very common usage.
The text was updated successfully, but these errors were encountered:
I think it might be because you directly passed this.$scopedSlots into Inner.data.scopedSlots, which led to the implicit property $stable that was originally defined in Wrapper.$scopedSlots also being transferred to Inner.data.scopedSlots.
So this is why using the spread operator works fine, because the spread operator does not expand implicit properties.
excepted
.
actually(in your example)
And then, due to Vue's slot optimization mechanism, it ultimately led to the following logic...
So, Vue reused the previous scoped slot object, thereby reducing the rendering overhead.
Version
2.7.14
Reproduction link
codesandbox.io
Steps to reproduce
Click the change button
What is expected?
slot re-rendering
What is actually happening?
slot not re-rendering
To reproduce this issue, two conditions must be met
slot
andscopedSlot
are passed to the parent component$scopedSlots
to the child componentAfter deconstructing
$scopedSlots
this issue resolved, but this issue is important for library developers because passing$scopedSlots
is a very common usage.The text was updated successfully, but these errors were encountered: