HarmonyOS 鸿蒙Next Radio 如何在切换之前做判断?
HarmonyOS 鸿蒙Next Radio 如何在切换之前做判断? 使用Radio 组件 需要 在 Radio切换的时候做判断 判断通过后才可以选中,怎么写呢?
3 回复
可以使用双向绑定变量和@Watch修饰符实现
@Entry
@Component
struct TestGPage {
@State [@Watch](/user/Watch)('radioChangeA') flagA : boolean = false;
@State [@Watch](/user/Watch)('radioChangeB') flagB : boolean = false;
@State currentIndex:number = 1
radioChangeA(){
console.info('触发修改A');
}
radioChangeB(){
console.info('触发修改B');
if(this.currentIndex == 1){
this.flagB = true
} else{
this.flagB = false
}
}
build() {
Row() {
Column() {
Text('Radio1')
Radio({ value: 'Radio1', group: 'radioGroup' }).checked(this.flagA)
Radio({ value: 'Radio2', group: 'radioGroup' }).checked(this.flagB)
}
.width('100%')
}
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next Radio 如何在切换之前做判断?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
系统的组件好像不行,点击就直接选中了。可以自己写一个Radio,点击的时候判断条件,符合则选中。
在HarmonyOS中,若要在切换Radio
之前进行判断,可以使用RadioContainer
的onSelect
事件。该事件在用户选择Radio
时触发,允许你在切换前执行逻辑判断。你可以在onSelect
事件中通过event.index
获取当前选中的Radio
索引,并根据业务逻辑决定是否允许切换。如果判断条件不满足,可以通过event.preventDefault()
阻止切换。
例如:
RadioContainer({ onSelect: (event) => {
if (/* 你的判断条件 */) {
event.preventDefault(); // 阻止切换
}
}})
这种方式可以确保在切换Radio
之前执行必要的逻辑判断。