fix(runtime-dom): properly handle style properties with undefined values (#5348)

fix #5322
This commit is contained in:
Thorsten Lünborg 2022-04-13 12:20:39 +02:00 committed by GitHub
parent f4d2c9fc6a
commit 85af139863
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View File

@ -37,7 +37,18 @@ describe(`runtime-dom: style patching`, () => {
it('remove if falsy value', () => { it('remove if falsy value', () => {
const el = document.createElement('div') const el = document.createElement('div')
patchProp(el, 'style', { color: 'red' }, { color: undefined }) patchProp(el, 'style', null, {
color: undefined,
borderRadius: null
})
expect(el.style.cssText.replace(/\s/g, '')).toBe('')
patchProp(
el,
'style',
{ color: 'red' },
{ color: null, borderRadius: undefined }
)
expect(el.style.cssText.replace(/\s/g, '')).toBe('') expect(el.style.cssText.replace(/\s/g, '')).toBe('')
}) })

View File

@ -45,6 +45,7 @@ function setStyle(
if (isArray(val)) { if (isArray(val)) {
val.forEach(v => setStyle(style, name, v)) val.forEach(v => setStyle(style, name, v))
} else { } else {
if (val == null) val = ''
if (name.startsWith('--')) { if (name.startsWith('--')) {
// custom property definition // custom property definition
style.setProperty(name, val) style.setProperty(name, val)