Skip to content

Commit 2bdee50

Browse files
committed
fix(runtime-core): fix v-bind class/style merging regression
fix #4155
1 parent acb2a4d commit 2bdee50

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

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

+7-5
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ describe('vnode', () => {
342342

343343
describe('mergeProps', () => {
344344
test('class', () => {
345-
let props1: Data = { class: 'c' }
345+
let props1: Data = { class: { c: true } }
346346
let props2: Data = { class: ['cc'] }
347347
let props3: Data = { class: [{ ccc: true }] }
348348
let props4: Data = { class: { cccc: true } }
@@ -353,10 +353,12 @@ describe('vnode', () => {
353353

354354
test('style', () => {
355355
let props1: Data = {
356-
style: {
357-
color: 'red',
358-
fontSize: 10
359-
}
356+
style: [
357+
{
358+
color: 'red',
359+
fontSize: 10
360+
}
361+
]
360362
}
361363
let props2: Data = {
362364
style: [

packages/runtime-core/src/vnode.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -778,8 +778,8 @@ export function normalizeChildren(vnode: VNode, children: unknown) {
778778
}
779779

780780
export function mergeProps(...args: (Data & VNodeProps)[]) {
781-
const ret = extend({}, args[0])
782-
for (let i = 1; i < args.length; i++) {
781+
const ret: Data = {}
782+
for (let i = 0; i < args.length; i++) {
783783
const toMerge = args[i]
784784
for (const key in toMerge) {
785785
if (key === 'class') {

0 commit comments

Comments
 (0)