diff --git a/packages/runtime-dom/__tests__/patchStyle.spec.ts b/packages/runtime-dom/__tests__/patchStyle.spec.ts index 8b701da57..0755b5154 100644 --- a/packages/runtime-dom/__tests__/patchStyle.spec.ts +++ b/packages/runtime-dom/__tests__/patchStyle.spec.ts @@ -62,6 +62,12 @@ describe(`runtime-dom: style patching`, () => { expect(el.style.getPropertyValue('margin-right')).toBe('10px') }) + it('patch with falsy style value', () => { + const el = document.createElement('div') + patchProp(el as any, 'style', { width: '100px' }, { width: 0 }) + expect(el.style.width).toBe('0px') + }) + // JSDOM doesn't support custom properties on style object so we have to // mock it here. function mockElementWithStyle() { diff --git a/packages/runtime-dom/src/modules/style.ts b/packages/runtime-dom/src/modules/style.ts index e67e8000e..518f61d86 100644 --- a/packages/runtime-dom/src/modules/style.ts +++ b/packages/runtime-dom/src/modules/style.ts @@ -17,7 +17,7 @@ export function patchStyle(el: Element, prev: Style, next: Style) { } if (prev && !isString(prev)) { for (const key in prev) { - if (!next[key]) { + if (next[key] == null) { setStyle(style, key, '') } }