diff --git a/packages/badge-group/index.ts b/packages/badge-group/index.ts index 1553dc3b..7e7ca429 100644 --- a/packages/badge-group/index.ts +++ b/packages/badge-group/index.ts @@ -1,4 +1,5 @@ import { VantComponent } from '../common/component'; +import { isNumber } from '../common/utils'; VantComponent({ relation: { @@ -31,11 +32,11 @@ VantComponent({ }, methods: { - setActive(badge: Weapp.Component) { + setActive(badge: Weapp.Component | number) { let { active } = this.data; const { badges } = this; - if (badge) { + if (badge && !isNumber(badge)) { active = badges.indexOf(badge); } diff --git a/packages/common/utils.ts b/packages/common/utils.ts index 89073303..765c483d 100644 --- a/packages/common/utils.ts +++ b/packages/common/utils.ts @@ -7,7 +7,12 @@ function isObj(x: any): boolean { return x !== null && (type === 'object' || type === 'function'); } +function isNumber(value) { + return /^\d+$/.test(value); +} + export { isObj, - isDef + isDef, + isNumber };