Skip to content

Commit d852244

Browse files
javoskiztlevi
authored andcommitted
fix: inherit SVG ns on component root node (vuejs#6511)
fix vuejs#6506
1 parent 7065f11 commit d852244

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/core/vdom/create-element.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export function _createElement (
9191
let vnode, ns
9292
if (typeof tag === 'string') {
9393
let Ctor
94-
ns = config.getTagNamespace(tag)
94+
ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag)
9595
if (config.isReservedTag(tag)) {
9696
// platform built-in elements
9797
vnode = new VNode(

test/unit/modules/vdom/create-element.spec.js

+18
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,24 @@ describe('create-element', () => {
141141
expect(vnode.children[0].children[0].ns).toBeUndefined()
142142
})
143143

144+
// #6506
145+
it('render SVGAElement in a component correctly', () => {
146+
const vm = new Vue({
147+
template: `
148+
<svg>
149+
<test></test>
150+
</svg>
151+
`,
152+
components: {
153+
test: { render: h => h('a') }
154+
}
155+
}).$mount()
156+
const testComp = vm.$children[0]
157+
expect(testComp.$vnode.ns).toBe('svg')
158+
expect(testComp._vnode.tag).toBe('a')
159+
expect(testComp._vnode.ns).toBe('svg')
160+
})
161+
144162
it('warn observed data objects', () => {
145163
new Vue({
146164
data: {

0 commit comments

Comments
 (0)