-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
Safer isAsyncWrapper check (fix #4002) #6908
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
base: main
Are you sure you want to change the base?
Conversation
It breaks if the vnode passed has type empty, it should not break and just return `false` for isAsyncWrapper
Hi! Would it be possible to merge this PR? I currently have the same issue and this would really help me out as it completely fixes the issue. |
Co-authored-by: 三咲智子 Kevin Deng <[email protected]>
All vnodes should have a @sxzz What do you think about adding a dev warning when we encounter a malformed vnode, logging some context info? That way, the app may still gracefully recover, but users can report here in a new issue with maybe better information? |
@LinusBorg Sure, I think so. It's a better solution. |
I have a page which use vxetable(https://vxetable.cn/v3) to display a large table. Everything works fine in dev mode, but in production it will trigger this error (type is null when calling isAsyncWrapper) when scrolling between table columns, and this fix seems to work fine for my use case... |
@LinusBorg @yc-huang Is there any updates? Still have this issue and it stops from continue with vue3 migration. |
Also having this issue during vue3 migration |
Also having the same issue and it’s hard to replicate, but applying these changes fixes the problem. What can we do to get this merged and ready for next release? |
I'm having the exact same issue as mentioned in #5040 which was linked in this PR. I'm not sure if the change in this PR would solve this exact issue because that error is thrown at a different location. My problem (+ that in #5040) is that the parameter Now, this still doesn't help me figure out what exactly causes I'd just like to understand: Is Vue trying to unmount a component that has already been destroyed? Is that what's going on here? |
This change looks simple, but we still need a minimal reproducible demo to confirm the exact scenario where the error occurs. |
I've found scenarios when it's recursively onmounting components and face one that has
type
empty soisAsyncWrapper
breaks the whole app instead of just returningfalse
.Cannot provide a live demo since it's hard to replicate the scenarios where this happens as seen in many reports like: