-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
"Maximum call stack size exceeded" when using v-show on a component using transition as root element #5353
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
Comments
with enough updates calling the normalized slot will reach the max stack size core/packages/runtime-core/src/componentSlots.ts Lines 61 to 79 in 644971e
this patch will fix this bug, but perhaps there might be an higher level fix. const normalizeSlot = (key, rawSlot, ctx) => {
if(rawSlot && rawSlot._c === false) {
// already normalized
return rawSlot
}
const normalized = withCtx((...args) => {
...
}, ctx);
normalized._c = false;
return normalized;
}; |
@lidlanca if(rawSlot._n) {
// already normalized
return rawSlot
} |
nice, so withCtx actually adds the core/packages/runtime-core/src/componentRenderContext.ts Lines 105 to 106 in 9c304bf
|
Version
3.2.29
Reproduction link
sfc.vuejs.org/
Steps to reproduce
What is expected?
The code should run indefinitely, without warnings.
What is actually happening?
After (around) three minutes, the console is flooded with "Maximum call stack size exceeded" errors and the browser slows down to a crawl. This gets worse the longer the page is left open.
I had refactored a lot of my code to use embedded transitions in components and forgot remove one place where I used v-show instead of the new "visible" prop. That crashed my app after a while.
The text was updated successfully, but these errors were encountered: