Component({ properties: { /** 评分 0-10,内部转换为 0-5 星 */ score: { type: Number, value: 0, }, /** 星星尺寸 */ size: { type: String, value: '40rpx', }, /** 是否只读 */ readonly: { type: Boolean, value: true, }, }, observers: { score(val: number) { // score(0-10) → star(0-5) const clamped = Math.max(0, Math.min(10, val)) this.setData({ starValue: clamped / 2 }) }, }, data: { starValue: 0, }, lifetimes: { attached() { const clamped = Math.max(0, Math.min(10, this.data.score)) this.setData({ starValue: clamped / 2 }) }, }, })