veaury icon indicating copy to clipboard operation
veaury copied to clipboard

[ReactInVue] TypeError: Cannot read properties of undefined (reading 'unmount')

Open baijunjie opened this issue 1 year ago • 2 comments

这个问题触发条件比较苛刻,我不太确定是否是 Veaury 的问题,但是错误是从 Veaury 中报出来的 image

重现需要满足三个条件:

  1. 使用 Tabs 的路由模式,并且开启vue的过渡动画
image
  1. tab子页面中使用一个被 veaury 转换过的 React组件,并且绑定一个 ref<boolean> 变量来控制组件的显示
image

3)让这个组件默认显示,再异步更改布尔值,让其不显示,此时就会报错,并且一旦报错,Tabs 就坏掉了,无法再进行切换。

以下是demo代码的仓库 https://github.com/baijunjie/veaury-issue-demo

baijunjie avatar Apr 28 '24 13:04 baijunjie

关于最后一步,异步更改布尔值,我发现如果异步请求在画面 onMounted 之前响应就会报错,如果在 画面 onMounted 之后响应,就没问题。

baijunjie avatar Apr 28 '24 13:04 baijunjie

关于最后一步,异步更改布尔值,我发现如果异步请求在画面 onMounted 之前响应就会报错,如果在 画面 onMounted 之后响应,就没问题。

由于demo代码比较简单,看上去只要确保异步处理在 onMounted 之后完成就不会有问题,但是在我的实际项目中,由于环境更加复杂,并且嵌套组件比较多,即使在 onMounted 之后完成异步处理一样会报这个错误,这个case我目前无法通过简单的demo复现,不过我觉得问题应该是一样的。

baijunjie avatar Apr 28 '24 13:04 baijunjie

@baijunjie 不好意思,关注这个issue有点晚,不过俗话说“正义会迟到但不会缺席”,我使用[email protected]仍然会复现这个问题,但是Tabs组件并不会挂掉,确定是个bug,将在下一个版本修复

devilwjp avatar Sep 20 '24 12:09 devilwjp

@baijunjie 已更新,升级到2.5.1

devilwjp avatar Sep 22 '24 08:09 devilwjp