找回密码
 立即注册
首页 业界区 业界 鸿蒙仓颉开发语言实战教程:页面跳转和传参 ...

鸿蒙仓颉开发语言实战教程:页面跳转和传参

电棘缣 4 天前
前两天分别实现了商城应用的首页和商品详情页面,今天要分享新的内容,就是这两个页面之间的相互跳转和传递参数。
首先我们需要两个页面。如果你的项目中还没有第二个页面,可以右键cangjie文件夹新建仓颉文件:
1.png

新建的文件里面没什么内容,我们给他添加上4个基础的引用,再简单添加个按钮:
  1. package ohos_app_cangjie_entry.page
  2. import ohos.base.*
  3. import ohos.component.*
  4. import ohos.state_manage.*
  5. import ohos.state_macro_manage.*
  6. @Entry
  7. @Component
  8. public class testPage {
  9.     func build() {
  10.             Column {
  11.             Button('返回')
  12.             }
  13.     }
  14. }
复制代码
 
页面跳转和返回
仓颉语言有和ArkTs相同的路由Router,不过用法不太一样。在跳转页面的时候,push使用的url,不再是路径,而是直接写页面名称,不用管的路径。比如我刚才新建了页面testPage,跳转的时候就是:
  1. Router.push(url: 'testPage')
复制代码
当页面需要返回,使用Router.back(),back中可以写url参数,也可以不写。
要注意,这里我们说的页面名称,并不是文件的名字,而是页面的名称。比如index.cj文件,它的页面名称是EntryView而不是index。
2.png

 
传递参数
页面跳转通常伴随着传递参数,在使用push跳转的时候能看到和url并列的还有一个params用来传递参数,它支持两种类型,string和JsonObject。
只需传递一个参数的时候我们可以直接传递string类型的参数:
  1. Router.push(url: 'testPage', params: '100')
复制代码
在下一个页面接收的参数的时候也要使用Router:
  1. Router.getParams()
复制代码
同样的,在返回上一级页面的时候也可以同样的方式传递参数,接收参数也是一样的。
  1. Router.back(url: 'EntryView',params:'参数2')
复制代码
在需要传递多个参数的时候,我们需要使用JsonObject类型,这是一个全新的数据类型,幽蓝君使用它的时候颇费了一番周折。好在看了这篇文章的友友不用再浪费时间了,它是这样用的:
  1. var map = JsonObject()
  2. map.put("name", JsonString("衬衫"))
  3. map.put(“size”, JsonString(“xl”))
  4. Router.push(url: 'testPage', params: map)
复制代码
在下一个页面接收多个参数时,要使用Router.getParamsObject():
  1. let obj =  Router.getParamsObject()
  2. let a =  obj['name']
复制代码
 
  1. AppLog.info('接收多个参数:' + a.toString())
复制代码
以上就是仓颉开发语言中的页面跳转和传参。#HarmonyOS语言##仓颉##购物#

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册