HarmonyOS 枚举值条件判断不生效

代码片段

/**
 * 存款类型枚举
 */
export enum DMDetailType {
  'lczq',   //零存整取
  'zczq',  //整存整取
  'lczqxc', // 零存整取续存
  'transfer', //定活两便
  'moreThanTen', //  通知存款,超过10万
  'lessThanTen', //  通知存款,小于10万
  'nono', //无
}

@State type: DMDetailType = DMDetailType.nono//初始化赋值

this.type = DMDetailType.transfer//业务逻辑赋值

if (this.type = DMDetailType.lczq) {条件不成立,但走到这里面来了。} else {应该走这里面来。}

.visibility( this.type == DMDetailType.moreThanTen || this.type == DMDetailType.lczqxc ? Visibility.Visible : Visibility.None)

问题:

在 this.type = DMDetailType.transfer 条件下,

1,枚举type属性在进行业务逻辑赋值后,if 中带的枚举判断不生效,没有走else,走的是if

2,组件的visibility属性,用三目运算符不生效,此组件应该隐藏,实际是展示

HarmonyOS
2024-12-24 15:36:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可参考以下demo达成预期:

export enum DMDetailType {
  'lczq', //零存整取
  'zczq', //整存整取
  'lczqxc', // 零存整取续存
  'transfer', //定活两便
  'moreThanTen', // 通知存款,超过10万
  'lessThanTen', // 通知存款,小于10万
  'nono', //无
}

@Entry
@Component
struct Test {
  @State type: DMDetailType = DMDetailType.nono //初始化赋值

  build() {
    Column() {
      Button('Test1')
        .onClick(() => {
          this.type = DMDetailType.transfer //业务逻辑赋值
          console.log('', this.type)
          if (DMDetailType.lczq == this.type as number) {  // 类型断言为number
            console.log('true')
          } else {
            console.log('false')
          }
        })
      Button('Test2')
        .visibility(this.type == DMDetailType.moreThanTen  || this.type == DMDetailType.lczqxc ? Visibility.Visible :
        Visibility.None)
    }
  }
}
分享
微博
QQ
微信
回复
2024-12-24 18:12:40
相关问题
HarmonyOS margin生效
814浏览 • 1回复 待解决
组件复用生效条件有哪些?
436浏览 • 1回复 待解决
HarmonyOS expandSafeArea生效
575浏览 • 1回复 待解决
IF条件变化后UI刷新
940浏览 • 1回复 待解决
HarmonyOS margin生效问题
347浏览 • 1回复 待解决
HarmonyOS @Observed生效问题
718浏览 • 1回复 待解决
HarmonyOS targetSpace生效问题
228浏览 • 1回复 待解决
abiFilters配置生效
672浏览 • 1回复 待解决
HarmonyOS 关于onKeyEvent生效问题
656浏览 • 1回复 待解决
HarmonyOS Span内边距生效
85浏览 • 1回复 待解决
HarmonyOS photoViewPicker智能推荐生效
515浏览 • 1回复 待解决
HarmonyOS Web组件borderRadius生效
297浏览 • 1回复 待解决
HarmonyOS Stack 里 align生效
315浏览 • 1回复 待解决
HarmonyOS hitTestBehavior.block生效
609浏览 • 1回复 待解决
HarmonyOS stack设置圆角生效
344浏览 • 1回复 待解决
HarmonyOS Panel 设置 borderRadius 生效
977浏览 • 1回复 待解决