Преглед изворни кода

fix: include boolean in isPrimitive check (#6127)

suppresses key warning for boolean values, closes #6126
Eduardo San Martin Morote пре 9 година
родитељ
комит
be3dc9c6e9
2 измењених фајлова са 14 додато и 1 уклоњено
  1. 5 1
      src/shared/util.js
  2. 9 0
      test/unit/modules/vdom/create-element.spec.js

+ 5 - 1
src/shared/util.js

@@ -22,7 +22,11 @@ export function isFalse (v: any): boolean %checks {
  * Check if value is primitive
  */
 export function isPrimitive (value: any): boolean %checks {
-  return typeof value === 'string' || typeof value === 'number'
+  return (
+    typeof value === 'string' ||
+    typeof value === 'number' ||
+    typeof value === 'boolean'
+  )
 }
 
 /**

+ 9 - 0
test/unit/modules/vdom/create-element.spec.js

@@ -162,6 +162,15 @@ describe('create-element', () => {
     expect('Avoid using non-primitive value as key').toHaveBeenWarned()
   })
 
+  it('doesn\'t warn boolean key', () => {
+    new Vue({
+      render (h) {
+        return h('div', { key: true })
+      }
+    }).$mount()
+    expect('Avoid using non-primitive value as key').not.toHaveBeenWarned()
+  })
+
   it('nested child elements should be updated correctly', done => {
     const vm = new Vue({
       data: { n: 1 },