HarmonyOS开辟的项目运行在ArkUI-X详解

梦应逍遥  金牌会员 | 2024-6-26 10:49:22 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 530|帖子 530|积分 1590

HarmonyOS开辟的项目如何运行在ArkUI-X,ArkUI-X和  HarmonyOS Next   都是利用   API Version 10+  的OS版本,对语法要求更严格。重要分为以下两步来实现。更多HarmonyOS开辟详解见:  HarmonyOS HarmonyOS Next系列教程下载地址-IT营大地老师     一、同步代码      1  、复制  HarmonyOS   entry\src\main\ets\pages   里面的全部文件到   ArkUI-X  项目标     entry\src\main\ets\pages   里面      2  、复制  HarmonyOS   entry\src\main\resources   里面的全部文件到  ArkUI-X  项目标     entry\src\main\resources   目录里面,这里面包罗了资源文件和路由设置文件      3  、修改  ArkUI-X   entry/src/main/module.json5   ,  假如  HarmonyOS   项目中设置了网络请求或者申请     权限的代码还需在   module.json5   中重新设置        二、让  HarmonyOS  代码能在  ArkUI-X  中运行      ArkUI-X  和  HarmonyOS Next   都是利用   API Version 10+  的  OS  版本,对语法要求更严格。     假如以前写代码语法不规范还需要举行微调      1  、循环遍历数据必须指定范例      下面代码在  HarmonyOS  中可以运行,但是在  ArkUI-X  中会提示  item  错误   
  1. List({space:10}){
  2. ForEach([1,3,4,5,6,7,87,8,8,9,23,34],(item)=>{
  3. ListItem(){
  4. Text(`${item}`)
  5. .fontSize(34)
  6. .width('100%')
  7. .height(60)
  8. .borderRadius(10)
  9. .textAlign(TextAlign.Center)
  10. .backgroundColor('#eee')
  11. }
  12. })
  13. }
  14. .padding(10)
  15. .height('100%')
复制代码
    解决方法          循环遍历的时间指定数据范例        
  1. List({space:10}){
  2. ForEach([1,3,4,5,6,7,87,8,8,9,23,34],(item:number)=>{
  3. ListItem(){
  4. Text(`${item}`)
  5. .fontSize(34)
  6. .width('100%')
  7. .height(60)
  8. .borderRadius(10)
  9. .textAlign(TextAlign.Center)
  10. .backgroundColor('#eee')
  11. }
  12. })
  13. }
  14. .padding(10)
  15. .height('100%')
复制代码
      提示:    对应的    key    也需要设置范例            
  1. @Entry
  2. @Component
  3. struct Grid_1_View_Page {
  4. arr: string[] =
  5. [`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,'12','13','14','15']
  6. build() {
  7. Column() {
  8. Grid(){
  9. ForEach(this.arr,(item:string)=>{
  10. GridItem(){
  11. Text(item)
  12. .fontSize(26)
  13. .fontColor(Color.White)
  14. .backgroundColor("#007DFF")
  15. .width('100%')
  16. .height('160')
  17. .textAlign(TextAlign.Center)
  18. }
  19. },(item:string)=>item)
  20. }.columnsTemplate('1fr 1fr 1fr')
  21. .columnsGap(10)
  22. .rowsGap(10)
  23. .padding(10)
  24. }
  25. .width('100%')
  26. .height('100%')
  27. }
  28. }
复制代码
            2     、界说相应式数据需要指定初值                  下面代码在     HarmonyOS     中可以运行,但是在     ArkUI-X     中会提示                  Property 'cId' has no initializer and is not definitely assigned in the              constructor.                        Property 'pId' has no initializer and is not definitely assigned in the                 constructor.                     
  1. private pId: number
  2. private cId: number
  3. aboutToAppear(){
  4. let params:object = router.getParams()
  5. console.log(params["pId"])
  6. console.log(params["cId"])
  7. this.pId=params["pId"];
  8. this.cId=params["cId"];
  9. }
复制代码
            解决方法       :       界说相应式数据需要指定初值                        
  1. private pId: number=0
  2. private cId: number=0
  3. aboutToAppear(){
  4. let params:object = router.getParams()
  5. console.log(params["pId"])
  6. console.log(params["cId"])
  7. this.pId=params["pId"];
  8. this.cId=params["cId"];
  9. }
复制代码
              3        、界说变量需要指定范例                                      下面代码在         HarmonyOS         中可以运行,但是在         ArkUI-X         中会提示                                           Indexed access is not supported for fields                                    
  1. private pId: number=0
  2. private cId: number=0
  3. aboutToAppear(){
  4. let params = router.getParams()
  5. console.log(params["pId"])
  6. console.log(params["cId"])
  7. this.pId=params["pId"];
  8. this.cId=params["cId"];
  9. }
复制代码
                    解决方法           :           界说变量需要指定范例                                         
  1. private pId: number=0
  2. private cId: number=0
  3. aboutToAppear(){
  4. let params:object = router.getParams()
  5. console.log(params["pId"])
  6. console.log(params["cId"])
  7. this.pId=params["pId"];
  8. this.cId=params["cId"];
  9. }
复制代码
                      4                        parseInt()             报错 利用            Number()            方法替换                                              Usage of standard library is restricted (arkts-limited-stdlib) <ArkTSCheck                                             
  1. import router from '@ohos.router'
  2. @Component
  3. export struct AppBar {
  4. //在build方法执行之前执行
  5. aboutToAppear(){
  6. console.log(router.getLength())
  7. }
  8. //build方法执行完毕后才执行
  9. onPageShow(){
  10. }
  11. title:string="首页"
  12. build(){
  13. Row(){
  14. if(Number(router.getLength())>1) {
  15. Row() {
  16. Image($r("app.media.back")).height(22).padding({ left: 6 })
  17. }.width(60)
  18. .height('100%')
  19. .onClick(() => {
  20. router.back()
  21. })
  22. }
  23. Row(){
  24. Text(this.title)
  25. .size({ width: '100%', height: "50vp" })
  26. .fontColor("#ffffff")
  27. .textAlign(TextAlign.Center)
  28. .fontSize("18fp")
  29. }.layoutWeight(1)
  30. if(Number(router.getLength())>1) {
  31. Row() {
  32. }.width(60)
  33. .height('100%')
  34. }
  35. }
  36. .height(50)
  37. .width('100%')
  38. .backgroundColor("#d81e06")
  39. }
  40. }
复制代码
           

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦应逍遥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表