]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(runtime-core): fix v-bind class/style merging regression
authorEvan You <yyx990803@gmail.com>
Tue, 20 Jul 2021 17:58:43 +0000 (13:58 -0400)
committerEvan You <yyx990803@gmail.com>
Tue, 20 Jul 2021 17:58:43 +0000 (13:58 -0400)
fix #4155

packages/runtime-core/__tests__/vnode.spec.ts
packages/runtime-core/src/vnode.ts

index 3aae17ca0d882cb8226e2eb2f2d620bc8dd80a50..a38c93140aad612ecb6f1a3d07e23110c0152502 100644 (file)
@@ -342,7 +342,7 @@ describe('vnode', () => {
 
   describe('mergeProps', () => {
     test('class', () => {
-      let props1: Data = { class: 'c' }
+      let props1: Data = { class: { c: true } }
       let props2: Data = { class: ['cc'] }
       let props3: Data = { class: [{ ccc: true }] }
       let props4: Data = { class: { cccc: true } }
@@ -353,10 +353,12 @@ describe('vnode', () => {
 
     test('style', () => {
       let props1: Data = {
-        style: {
-          color: 'red',
-          fontSize: 10
-        }
+        style: [
+          {
+            color: 'red',
+            fontSize: 10
+          }
+        ]
       }
       let props2: Data = {
         style: [
index d65cdbe05db152e8c27040551504ad06c2f08e50..18db9cf5e258125e07e9aa672c0a05d2104e59cf 100644 (file)
@@ -778,8 +778,8 @@ export function normalizeChildren(vnode: VNode, children: unknown) {
 }
 
 export function mergeProps(...args: (Data & VNodeProps)[]) {
-  const ret = extend({}, args[0])
-  for (let i = 1; i < args.length; i++) {
+  const ret: Data = {}
+  for (let i = 0; i < args.length; i++) {
     const toMerge = args[i]
     for (const key in toMerge) {
       if (key === 'class') {