Я создаю компонент vuejs, который принимает опору по имени idFieldType
Теперь я хочу, чтобы эта опора принимала только тип номера или строковый тип
Поэтому я написал это следующим образом
idFieldType: {
Type: Function,
default: function() {
return Number;
},
validator: function() {
if(value == String || value == Number) {
return true;
}
return false;
}
}
Я также попытался заменить тип на Object.
Мой вопрос в том, как я могу написать опору, которая принимает только определенные типы?
Vue.JS имеет встроенную проверку реквизита, вы можете установить тип, обязательный или нет, значение по умолчанию... Например:
Vue.component('example', {
props: {
// basic type check ('null' means accept any type)
propA: Number,
// multiple possible types
propB: [String, Number],
// a required string
propC: {
type: String,
required: true
},
// a number with default value
propD: {
type: Number,
default: 100
},
// object/array defaults should be returned from a
// factory function
propE: {
type: Object,
default: function () {
return { message: 'hello' }
}
},
// custom validator function
propF: {
validator: function (value) {
return value > 10
}
}
}
})
обратите внимание, что Vue.js также принимает несколько возможных типов propB: [String, Number],
что вам нужно. И вы можете узнать больше об этом в официальной вики
Хорошо, нашел решение..
idFieldType: {
type: Function,
default: Number,
validator: function (value) {
if (value() == String || value() == Number) {
return true;
}
return false;
}
}
Проблема заключалась в том, что при указании типа как функции по умолчанию функция ожидает, я возвращаю функцию, возвращающую функцию :)
my-prop: [String, Number]
?