vant
vant copied to clipboard
[Bug Report] 基于动态组件使用tab组件时, 生产环境下新增tab后title位置渲染错误
重现链接
https://github.com/Lisheri/vant/blob/fix/dynamic_tab/packages/vant/src/tab/demo/index.vue
demo第一个可以复现
Vant 版本
4.8.5
描述一下你遇到的问题。
基于动态组件使用包裹后的tab组件, 动态新增tab时候生产环境下无法渲染出正确的顺序(仅title渲染错误)
原因在于 tab中调用useParent link时在生产环境下调用flattenVNodes方法时无法从父节点的subTree上获取到当前插入的最新的tab所对应的vnode, 导致位置计算错误, 只能插入到最后
点击新增后, 在拍平后的vnodes集合中找不到新增的vnode, 因此插入顺序错误
重现步骤
以下均需要生产环境:
- 基于Tab包裹新的Tab组件
- 基于动态组件引入包裹后的Tab
- 在tabs下循环渲染上述动态组件
- 动态新增tab到对应位置
- 无论插入节点到何处, 均渲染到最后
设备/浏览器
chrome 版本 121.0.6167.184(正式版本) (arm64)
这是啥字体😳