fix #5296
@@ -446,6 +446,10 @@ describe('vnode', () => {
onClick: [clickHandler1, clickHandler2],
onFocus: focusHandler2
})
+ let props3: Data = { onClick: undefined }
+ expect(mergeProps(props1, props3)).toMatchObject({
+ onClick: clickHandler1
+ })
test('default', () => {
@@ -798,6 +798,7 @@ export function mergeProps(...args: (Data & VNodeProps)[]) {
const existing = ret[key]
const incoming = toMerge[key]
if (
+ incoming &&
existing !== incoming &&
!(isArray(existing) && existing.includes(incoming))
) {
@@ -141,7 +141,7 @@ function patchStopImmediatePropagation(
originalStop.call(e)
;(e as any)._stopped = true
}
- return value.map(fn => (e: Event) => !(e as any)._stopped && fn(e))
+ return value.map(fn => (e: Event) => !(e as any)._stopped && fn && fn(e))
} else {
return value