Swift 获得;表达式类型在没有上下文的情况下是不明确的;使用VStack内部的列表时

Swift 获得;表达式类型在没有上下文的情况下是不明确的;使用VStack内部的列表时,swift,firebase,google-cloud-firestore,swiftui,Swift,Firebase,Google Cloud Firestore,Swiftui,因此,我在VStack中使用了一个列表视图,并且遇到了一个问题,即“表达式的类型在没有更多上下文的情况下是不明确的”。当我开始通过Firestore而不仅仅是硬编码的值填充数据时,问题开始出现。我简化了我的代码,以显示我如何使用下面列表的结构 import SwiftUI import FirebaseAuth import FirebaseFirestore struct MainView: View { @State private var radius = 300

因此,我在VStack中使用了一个列表视图,并且遇到了一个问题,即“表达式的类型在没有更多上下文的情况下是不明确的”。当我开始通过Firestore而不仅仅是硬编码的值填充数据时,问题开始出现。我简化了我的代码,以显示我如何使用下面列表的结构

import SwiftUI
import FirebaseAuth
import FirebaseFirestore

struct MainView: View {
    
    @State private var radius = 300
    private var name = "Name"
    @ObservedObject private var viewModel = TaskViewModel()
    
    let db = Firestore.firestore()
    
    init() { UITableView.appearance().backgroundColor = .clear
        UITableView.appearance().isScrollEnabled = false
    }
    
    var body: some View {
        
        return NavigationView(content: {
            
            VStack {
                Spacer()
                    .frame(height: 150)
                
                List(viewModel.task) { item in
                    VStack(alignment: .leading) {
                        Image(systemName: item.completedIcon)
                        Text(item.title).font(Font.custom("Permanent Marker", size: 18))
                    }
                }.navigationBarTitle("Tasks")
                .onAppear() {
                    self.viewModel.fetchData()
                }
                .frame(width: 318, height: 404, alignment: .center)
                .shadow(radius: 7)
                .cornerRadius(25.0)
                .listRowBackground(Color.white)

            }
            
        })
        
    }
}
任何帮助都将不胜感激

问题就在这里

List(viewModel.taks)
确保您的自定义模型符合

struct Task:Identifiable {
或添加id属性

List(viewModel.taks, id: \.id) { item in
问题就在这里

List(viewModel.taks)
确保您的自定义模型符合

struct Task:Identifiable {
或添加id属性

List(viewModel.taks, id: \.id) { item in

您需要提供有关viewModel.task的更多详细信息。您的问题很可能出现在
列表(viewModel.taks)
您需要提供有关viewModel.task的更多详细信息。您的问题很可能出现在
列表(viewModel.taks)
Ohh。是的,我没有确定任务。如果您不介意解释的话,为什么id对列表很重要?这是一种使循环有效的方法,可以是id或ididentifiable@DayemSaeedSwiftUI使用
id
属性(可以作为
id
输入参数显式传入,也可以使用来自
可识别的
id
属性)在需要更新时区分
列表
,以便仅修改受更新模型影响的行<代码>id
在删除例如.Ohh的行时也会使用。是的,我没有确定任务。如果您不介意解释的话,为什么id对列表很重要?这是一种使循环有效的方法,可以是id或ididentifiable@DayemSaeedSwiftUI使用
id
属性(可以作为
id
输入参数显式传入,也可以使用来自
可识别的
id
属性)在需要更新时区分
列表
,以便仅修改受更新模型影响的行<例如,在删除行时也使用代码>id