fix(vue-common): resolves the loading icon after multiple calls to render function nesting levels (#3554)

This commit is contained in:
申君健 2025-07-07 17:32:11 +08:00 committed by GitHub
parent b963e65b46
commit a9f75d0c5c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 6 additions and 3 deletions

View File

@ -360,11 +360,14 @@ export function svg({ name = 'Icon', component }) {
// 解决多个相同的渐变图标svg中有相同id时在displaynone情况下导致的样式异常问题 // 解决多个相同的渐变图标svg中有相同id时在displaynone情况下导致的样式异常问题
if (GRADIENT_ICONS_LIST.includes(name)) { if (GRADIENT_ICONS_LIST.includes(name)) {
const render = component.render if (!component.__raw_render) {
component.__raw_render = component.render
}
component.render = function (...args) { component.render = function (...args) {
// 指向正确的this对象保证vue2运行正常 // 指向正确的this对象保证vue2运行正常
const newRender = render.bind(this) const newRender = component.__raw_render.bind(this) // 每次使用原始render, 以避免递归render函数。
const vnode = newRender(args) const vnode = newRender(...args)
generateIcon(vnode) generateIcon(vnode)
return vnode return vnode
} }