Error message. "Props with type Object/Array must use a factory function to return the default value."
A factory function in props looks like this:
props: { exampleDefaultObject: { type: Object, default() { return {} } }, exampleDefaultArray: { type: Array, default() { return [] } }},
or in ES6:
props: { exampleDefaultObject: { type: Object, default: () => ({}) }, exampleDefaultArray: { type: Array, default: () => [] }},
(for people who come here looking for an explanation of the error in the question 'props with type object/array must use a factory function to return the default value')
Note that when returning an object in an es6 arrow function, you need the parentheses: () => ({})
instead of () => {}
according to your console warn, i find the error
https://github.com/holiber/sl-vue-tree/blob/master/src/sl-vue-tree.js#L30
try to fix it like this:
multiselectKey: { type: [String, Array], default: function () { return ['ctrlKey', 'metaKey'] }, validator: function (value) { let allowedKeys = ['ctrlKey', 'metaKey', 'altKey']; let multiselectKeys = Array.isArray(value) ? value : [value]; multiselectKeys = multiselectKeys.filter(keyName => allowedKeys.indexOf(keyName ) !== -1); return !!multiselectKeys.length; }},
the component default value must use a factory function to return!
try it and hope it can help you
these cases require a function than produce the default value, not an object or array:
obj_param:{ type:Object, default:()=>{}},array_param:{ type:Array, default:()=>[]},
this is for performance reasons, since the function is called only if needed (no value so use default), while the direct value would be instantiated everytime the component is used