fix(runtime-dom): attribute should be removed with nullish values (#2679)
fix #2677
This commit is contained in:
parent
64d4681e4b
commit
fb6b9f8e8f
@ -120,6 +120,23 @@ describe('runtime-dom: props patching', () => {
|
|||||||
|
|
||||||
patchProp(el, 'id', null, '')
|
patchProp(el, 'id', null, '')
|
||||||
expect(el.hasAttribute('id')).toBe(true)
|
expect(el.hasAttribute('id')).toBe(true)
|
||||||
|
|
||||||
|
// #2677
|
||||||
|
const img = document.createElement('img')
|
||||||
|
patchProp(img, 'width', null, '')
|
||||||
|
expect(el.hasAttribute('width')).toBe(false)
|
||||||
|
patchProp(img, 'width', null, 0)
|
||||||
|
expect(img.hasAttribute('width')).toBe(true)
|
||||||
|
|
||||||
|
patchProp(img, 'width', null, null)
|
||||||
|
expect(img.hasAttribute('width')).toBe(false)
|
||||||
|
patchProp(img, 'width', null, 0)
|
||||||
|
expect(img.hasAttribute('width')).toBe(true)
|
||||||
|
|
||||||
|
patchProp(img, 'width', null, undefined)
|
||||||
|
expect(img.hasAttribute('width')).toBe(false)
|
||||||
|
patchProp(img, 'width', null, 0)
|
||||||
|
expect(img.hasAttribute('width')).toBe(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('form attribute', () => {
|
test('form attribute', () => {
|
||||||
|
@ -41,6 +41,10 @@ export function patchDOMProp(
|
|||||||
// e.g. <div :id="null">
|
// e.g. <div :id="null">
|
||||||
el[key] = ''
|
el[key] = ''
|
||||||
el.removeAttribute(key)
|
el.removeAttribute(key)
|
||||||
|
} else if ((value == null || value === '') && typeof el[key] === 'number') {
|
||||||
|
// e.g. <img :width="null">
|
||||||
|
el[key] = 0
|
||||||
|
el.removeAttribute(key)
|
||||||
} else {
|
} else {
|
||||||
// some properties perform value validation and throw
|
// some properties perform value validation and throw
|
||||||
try {
|
try {
|
||||||
|
Loading…
Reference in New Issue
Block a user