OpenHarmony开发者论坛

标题: 如何解决Indexed access is not supported for fields (arkts-no-props-by-index) <ArkTSCheck> :7问题 [打印本页]

作者: haidaowang    时间: 3 天前
标题: 如何解决Indexed access is not supported for fields (arkts-no-props-by-index) <ArkTSCheck> :7问题
【问题描述】
问题现象和发生的背景
在【LoginOKPage.ets】文件中输入“@State userName: string = router.getParams()['userNameParam']”后出现了“Indexed access is not supported for fields (arkts-no-props-by-index) <ArkTSCheck> :7”的问题

相关的代码,截图,日志信息
【Index.ets】文件
import { router } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State message: string = '欢迎回来,主人!';
  @State userName: string = '';//用户名
  @State passWord: string = '';//密码

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(40)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })

      TextInput({placeholder:'用户名'}).width('90%').margin({top:100})
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onChange((value)=>{
          this.userName = value;
        })

      TextInput({placeholder:'密码'}).width('90%').margin({top:200}).type(InputType.Password)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onChange((value)=>{
          this.passWord = value;
        })

      Button('登录')
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .margin({top:300})
        .onClick(()=>{
          router.pushUrl({
            url:'pages/LoginOKPage',
            params:{
              userNameParam:this.userName,
              passWordParam:this.passWord
            }
          })
        })
    }
    .height('100%')
    .width('100%')
  }
}


【LoginOKPage.ets】文件
import { router } from '@kit.ArkUI';

@Entry
@Component
struct LoginOKPage {
  @State message: string = '登录成功';
  @State userName: string = router.getParams()['userNameParam']

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('LoginOKPageHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })

      Button('返回')
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .margin({top:100})
        .onClick(()=>{
          router.back()
        })
    }
    .height('100%')
    .width('100%')
  }
}

我想要达到的结果


【运行环境】
DevEvoStudio版本:devecostudio-windows-5.0.5.300
SDK版本:API Version 13
(, 下载次数: 0)

作者: hyacinth养花人    时间: 前天 17:45
@State userName: string = (router.getParams() as Record<string, string>).userNameParam

有提示的错误可以在这里找到相关修改示例: https://docs.openharmony.cn/page ... s-no-props-by-index




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5