Quellcode durchsuchen

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

fix #5322
Thorsten Lünborg vor 4 Jahren
Ursprung
Commit
85af139863

+ 12 - 1
packages/runtime-dom/__tests__/patchStyle.spec.ts

@@ -37,7 +37,18 @@ describe(`runtime-dom: style patching`, () => {
 
   it('remove if falsy value', () => {
     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('')
   })
 

+ 1 - 0
packages/runtime-dom/src/modules/style.ts

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