HarmonyOS Navigation组件返回上个页面同时带回新的图片地址,但是上个页面的图片并没有刷新

A页面有个图片组件,通过pushDestinationByName方法跳转B页面,再从B页面返回并带回新的图片地址,A页面图片并未刷新,但是Text组件是正常刷新的可以展示最新的图片地址text。

HarmonyOS
2024-08-04 14:14:17
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
e_lion

arkts中Image组件的src如果是资源引用型Resource的话,是不可修改不可以修改Resource中的各属性的值。

文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-types-V5#resource

你可以在this.selectImageUrl = imageUrl这一行打上断点,运行

点击返回的时候可以看到获得的imageUrl数据是""image2.jpg"",多了一层引号包裹

text组件也可以看到效果

import { next } from './Next'; 
@Entry 
@Component 
struct Index { 
  @State message: string = 'Hello World'; 
  @Provide('pageNavInfos') pageInfos: NavPathStack = new NavPathStack() 
  @State selectImageUrl: string = 'image1.jpg' 
 
  build() { 
    Navigation(this.pageInfos){ 
      Row() { 
        Column() { 
          Image($rawfile(this.selectImageUrl)).height('40%').onError(() => { 
            console.info('load image selectImageUrl fail',this.selectImageUrl) 
          }) 
          Text(this.selectImageUrl) 
            .fontSize(50) 
            .fontWeight(FontWeight.Bold) 
          Button('Next').onClick(() => { 
            this.pageInfos.pushDestinationByName('showNext', this.selectImageUrl, (popInfo) => { 
              let imageUrl = JSON.stringify(popInfo.result) as string 
              console.log('imageUrl',imageUrl) 
              this.selectImageUrl = imageUrl 
            }) 
          }) 
        }.width('100%') 
      }.height('100%') 
    }.navDestination(this.PageMap) 
 
  } 
 
  @Builder 
  PageMap(name: string) { 
    if (name === 'showNext') { 
      next() 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-08-05 11:58:01
相关问题
如何获取拍照后图片地址
1969浏览 • 1回复 待解决
HarmonyOS 子窗口跳转页面的返回问题
253浏览 • 1回复 待解决
如何在navigation跳转页面返回传参
1709浏览 • 1回复 待解决
HarmonyOS web加载页面图片不显示
486浏览 • 1回复 待解决