From 288c67115db28e4bdcc1dd9293cead7a4b43e92a Mon Sep 17 00:00:00 2001 From: Vitor Ferrari Date: Wed, 12 Feb 2020 17:52:48 -0300 Subject: [PATCH] fix: fix(ssr) textarea domProps keeps falsy values (#10803) --- src/platforms/web/server/modules/dom-props.js | 2 +- test/ssr/ssr-string.spec.js | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/platforms/web/server/modules/dom-props.js b/src/platforms/web/server/modules/dom-props.js index 57c18eefc89..f7190ec1158 100644 --- a/src/platforms/web/server/modules/dom-props.js +++ b/src/platforms/web/server/modules/dom-props.js @@ -27,7 +27,7 @@ export default function renderDOMProps (node: VNodeWithData): string { setText(node, props[key], true) } else if (key === 'textContent') { setText(node, props[key], false) - } else if (key === 'value' && node.tag === 'textarea') { + } else if (props[key] && key === 'value' && node.tag === 'textarea') { setText(node, props[key], false) } else { // $flow-disable-line (WTF?) diff --git a/test/ssr/ssr-string.spec.js b/test/ssr/ssr-string.spec.js index e18ca2aead9..a5a572c99c8 100644 --- a/test/ssr/ssr-string.spec.js +++ b/test/ssr/ssr-string.spec.js @@ -1222,6 +1222,26 @@ describe('SSR: renderToString', () => { }) }) + // SSR: textarea domProps keeps falsy values #10803 + it('falsy domProps value', done => { + renderVmWithOptions({ + render(h) { + return h('div', [ + h('textarea', { + domProps: { + value: null + } + }) + ]) + } + }, result => { + expect(result).toContain( + '
' + ) + done() + }) + }) + it('render v-model with