Jelajahi Sumber

fix(events): properly $off array of events (#6949)

Mads K 8 tahun lalu
induk
melakukan
c24f3e4208

+ 1 - 1
src/core/instance/events.js

@@ -92,7 +92,7 @@ export function eventsMixin (Vue: Class<Component>) {
     if (!cbs) {
       return vm
     }
-    if (arguments.length === 1) {
+    if (!fn) {
       vm._events[event] = null
       return vm
     }

+ 7 - 0
test/unit/features/instance/methods-events.spec.js

@@ -41,6 +41,13 @@ describe('Instance methods events', () => {
     expect(spy.calls.count()).toBe(1)
   })
 
+  it('$off multi event without callback', () => {
+    vm.$on(['test1', 'test2'], spy)
+    vm.$off(['test1', 'test2'])
+    vm.$emit('test1')
+    expect(spy).not.toHaveBeenCalled()
+  })
+
   it('$once', () => {
     vm.$once('test', spy)
     vm.$emit('test', 1, 2, 3)