fix(vue-common): resolves the loading icon after multiple calls to render function nesting levels (#3554)
This commit is contained in:
parent
b963e65b46
commit
a9f75d0c5c
|
@ -360,11 +360,14 @@ export function svg({ name = 'Icon', component }) {
|
||||||
|
|
||||||
// 解决多个相同的渐变图标svg中有相同id时,在display:none,情况下导致的样式异常问题
|
// 解决多个相同的渐变图标svg中有相同id时,在display:none,情况下导致的样式异常问题
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue