HarmonyOS PhotoSelectOptions属性preselectedUris有时候会设置无效

在一个前端用户反馈表单中,用户可以上传图片来描述问题(最多可以上传5张),用户可能第一次点击了一张,第二次需要继续添加(要求再次打开图片选择器可以自动选择第一次已经选择的,我们使用preselectedUris属性。

问题

preselectedUris属性中的string数组不可以使用@State修饰,只能是普通变量才能生效。

代码复现

import picker from '@ohos.file.picker';
import { photoAccessHelper } from '@kit.MediaLibraryKit';

@Entry
@Component
struct WebComponent {
  photoUris: Array<string> = []; // 成功
  // @State photoUris: Array<string> = [];   // 失败

  build() {
    Column() {
    }
    .width('100%').height('100%')
    .backgroundColor(Color.Pink)
    .onClick(() => {
      this.example01()
    })
  }
  example01() {

    try {
      let photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
      photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
      photoSelectOptions.preselectedUris = this.photoUris;
      photoSelectOptions.maxSelectNumber = 5;
      const photoPicker = new photoAccessHelper.PhotoViewPicker();
      photoPicker.select(photoSelectOptions).then((selectResult: photoAccessHelper.PhotoSelectResult) => {
        this.photoUris = selectResult.photoUris
      }).catch((err: Object) => {
        console.error('photoViewPicker.select failed with err: ' + JSON.stringify(err));
      });
    } catch (error) {
      console.error('photoViewPicker failed with err: ' + JSON.stringify(error));
    }
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

对preselectedUris进行赋值的变量无需使用@State修饰,如果一定要用@State修饰可以copy一份该变量赋值给preselectedUris

分享
微博
QQ
微信
回复
1天前
相关问题
有时候报错,有时候又报,汗……
278浏览 • 1回复 待解决
HarmonyOS 组件设置属性无效
429浏览 • 1回复 待解决
有时候我需要更新或替换一些库。
199浏览 • 1回复 待解决
HarmonyOS designWidth设置无效
40浏览 • 1回复 待解决
HarmonyOS 设置 bodercolor 无效
355浏览 • 1回复 待解决
HarmonyOS bindPopup设置color无效
821浏览 • 0回复 待解决
HarmonyOS camera设置对焦无效
394浏览 • 1回复 待解决
HarmonyOS 用域名设置cookie无效
70浏览 • 1回复 待解决