HarmonyOS pushPathByName中的第二个参数传入特殊字符串导致异常

HarmonyOS pushPathByName中的第二个参数传入特殊字符串导致异常 -鸿蒙开发者社区解决方案

参考示例如下:

@Entry
@Component
struct NavigationExample {
  pageInfo: NavPathStack = new NavPathStack()

  @Builder
  pageMap(name: string) {
    if (name === 'pageOne') {
      PageOne()
    } else if (name === 'pageTwo') {
      PageTwo()
    }
  }

  build() {
    Navigation(this.pageInfo) {
      Column() {
        Button('StartTest', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .height(40)
          .margin(20)
          .onClick(() => {
            this.pageInfo.pushPath({ name: 'pageOne' });
          })
      }
    }
    .title('NavIndex')
    .navDestination(this.pageMap)
  }
}
// PageOne.ets
class TmpClass {
  test: string =
    '<?ovital_ct name="ovital_sample">{"user":"","birthday":"","sex":"男","Marital_status":false,"work_address":"0"}'
}

@Component
export struct PageOne {
  pageInfo: NavPathStack = new NavPathStack();
  @State message: string = 'Hello World'

  build() {
    NavDestination() {
      Column() {
        Text(this.message)
          .width('80%')
          .height(50)
          .margin(10)

        Button('pushPathByName', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .height(40)
          .margin(10)
          .onClick(() => {
            let tmp = new TmpClass()
            this.pageInfo.pushPathByName('pageTwo', tmp, (popInfo) => {
              this.message =
                '[pushPathByName]last page is: ' + popInfo.info.name + ', result: ' + JSON.stringify(popInfo.result);
            });
          })

      }.width('100%').height('100%')
    }.title('pageOne')
    .onReady((context: NavDestinationContext) => {
      this.pageInfo = context.pathStack;
    })
  }
}
// PageTwo.ets
@Component
export struct PageTwo {
  pathStack: NavPathStack = new NavPathStack()

  build() {
    NavDestination() {
      Column() {
        Button('popToName', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .height(40)
          .margin(20)
          .onClick(() => {
            this.pathStack.popToName('pageOne'); // 将第一个名为name的NavDestination页面移到栈顶,将处理结果传入push的onPop回调中。
          })
      }.width('100%').height('100%')
    }.title('pageTwo')
    .onReady((context: NavDestinationContext) => {
      this.pathStack = context.pathStack
      console.log(JSON.stringify(this.pathStack.getParamByName('pageTwo')))
    })
  }
}

HarmonyOS 旋转屏幕,设计宽度的影响 <a name="section17700124317117"></a>

问题描述

基于屏幕设计宽度来进行开发的,目前屏幕设计宽度是 720lpx,都按照这个来的话,当旋转屏幕的时候,按钮突然变大了。对于使用lpx的场景有没有好的解决办法?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 字符串显示异常
486浏览 • 1回复 待解决
HarmonyOS 字符串格式化异常
507浏览 • 1回复 待解决
检查字符串是否以给定字符串开头
551浏览 • 1回复 待解决
检查字符串是否以给定字符串结尾
437浏览 • 1回复 待解决
怎么动态组装一json字符串
305浏览 • 1回复 待解决
HarmonyOS字符串替换问题
908浏览 • 1回复 待解决