我收到錯誤無法將型別 '()' 的值轉換為預期的引數型別 '(() -> Void)?' 使用執行操作 onAppear 功能時。下面是代碼。
這是將顯示影像/視頻/PDF 檔案的視圖
struct AssetView: View {
@ObservedObject var messageAttachmentViewModel: MessageAttachmentViewModel
var index: Int
var body: some View {
let messageAttachmentModel = messageAttachmentViewModel.commonMessageAttachmentModel[index]
switch messageAttachmentModel.uploadStatus {
case .idle:
Color.clear.onAppear(perform: messageAttachmentViewModel.uploadFileData(index: index)) // ERROR
case .failed(let error):
ProgressView()
case .loading(let progress):
// print(progress)
ProgressView(value: progress.fractionCompleted, total: Double(progress.totalUnitCount))
case .loaded:
ZStack(alignment: .trailing) {
if messageAttachmentModel.assetType == .Photo {
PhotoView(messageAttachment: messageAttachmentModel)
} else if messageAttachmentModel.assetType == .Video {
VideoView(messageAttachment: messageAttachmentModel)
} else if messageAttachmentModel.assetType == .PDF {
PDFView(messageAttachment: messageAttachmentModel)
}
}
.background(Color.red)
.frame(width: 150, height: 150)
}
}
}
uj5u.com熱心網友回復:
將其放入顯式閉包中,例如
case .idle:
Color.clear.onAppear {
messageAttachmentViewModel.uploadFileData(index: index)
}
據報道錯誤,因為試圖投回傳值messageAttachmentViewModel.uploadFileData()是Void預期無引數關閉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386160.html
上一篇:std::views尚未宣告
