当前位置:   article > 正文

鸿蒙forEach循环构建列表,数据项属性变更UI不更新终极解决办法_鸿蒙arraylist 中list remove,add,增删变化

鸿蒙arraylist 中list remove,add,增删变化后,ui没有刷新

首先,发起请返回的数据放到列表变量里,在界面上改变属性,发现界面不更新,于是用以下方法:

  1. // 获取列表
  2. getList(): void {
  3. let request = http.createHttp();
  4. request.request(
  5. 'https://mock.apifox.com/m1/4069686-3707332-default/shop/newsList',
  6. {
  7. method: http.RequestMethod.GET
  8. },
  9. (err, data) => {
  10. if (!err) {
  11. // console.log("111")
  12. // console.log(data.result+'')
  13. let re: Array<News> = JSON.parse(data.result + '')
  14. //****关键代码
  15. re.forEach(i => {
  16. let o: News = new News(i.id, i.title, i.add_time, i.click, i.zhaiyao, i.img_url, i.isRead)
  17. this.result.push(o)
  18. })
  19. }else{
  20. console.log(err+'')
  21. }
  22. })
  23. }

重新构建每一项的对象是关键,不然改变属性不会更新界面

再小记一下可选链操作符

  1. Image(this.item?.img_url)
  2. .width(100)
  3. .height(80)

像界面出现异步等问题,出现报错read img_url of undefined 可以用?.符号修饰

可选链允许你读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。如果尝试访问的属性不存在,表达式将短路并返回 undefined,而不是抛出一个错误。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号