HarmonyOS鸿蒙Next中如何实现点赞后调用接口并更新UI的解决方案

HarmonyOS鸿蒙Next中如何实现点赞后调用接口并更新UI的解决方案

interface userType{
  name:string
  age:number
  hobby:hobby
}

interface hobby{
  hobbyname:string
  hobbyNum:number
}

@Component
struct InterfacePage {

  @State user:userType = {
    name:'张三',
    age:18,
    hobby:{
      hobbyname:'打篮球',
      hobbyNum:1
    }
  }

  build() {
   Column(){
     Text('展示原本')
     Text(JSON.stringify(this.user))

     Button('点击修改深层次hobbyname')
       .onClick(()=>{
         let lfc:userType = {} as userType
         lfc = this.user
         lfc.hobby.hobbyname = '踢足球'

         this.user = lfc  //直接将对象赋值 就能变化
         console.log(this.user.hobby.hobbyname,'123')
       })
   }
    .height('100%')
    .width('100%')
  }
}

更多关于HarmonyOS鸿蒙Next中如何实现点赞后调用接口并更新UI的解决方案的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

开发者您好,关于您咨询的问题,您可参考@ObservedV2装饰器和@Trace装饰器:类属性变化观测,可以观测到类属性的变化,同时刷新UI页面。

更多关于HarmonyOS鸿蒙Next中如何实现点赞后调用接口并更新UI的解决方案的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


目前不能深度监听,只能监听一层,可以参考文档[@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化-管理组件拥有的状态-状态管理(V1)-状态管理-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5)来弥补装饰器仅能观察一层的能力限制。

父子组件可以这样,如果不是的话怎么整啊,

有示例代码吗
上述代码足够你这个案例使用,

ui不变化 但是数据发生变化了  给了一个状态变量赋值 然后点击 执行新建一个对象 给新对象赋值 修改状态变量的某一个属性 不发生变化 赋值整个对象就变化了 然后我又执行新建一个对象 但是这个对象为空 我用原本的状态变量赋值给空对象 然后将原本空对象的某个属性修改后,再将对象赋值给状态变量ui又不变换了

在HarmonyOS鸿蒙Next中,实现点赞后调用接口并更新UI的解决方案如下:

  1. 绑定点击事件:在UI组件(如按钮)上绑定点击事件,使用onClick方法监听用户点击。

  2. 调用接口:在点击事件中,使用HttpFetch模块发起网络请求,调用点赞接口。

  3. 处理响应:根据接口返回的结果,判断点赞是否成功。

  4. 更新UI:如果点赞成功,使用setStateupdateComponent方法更新UI,如改变按钮状态或显示点赞数。

  5. 错误处理:处理网络请求失败的情况,提示用户重试。

回到顶部