首页 > 解决方案 > SwiftUI:列表错误无法调用非函数类型'绑定的值'

问题描述

我正在尝试在列表中添加“onMove”和“onDelete”操作,但出现以下错误:

在此处输入图像描述

这是我的实现:


 @ObservedObject var itemsStore = TaskStore()
    
    var body: some View {
        ZStack {
            VStack{
                List{
                    ForEach(self.itemsStore.task) { task in
                        Text(task.todoItem)
                    }
                }.onMove{ self.$itemsStore.move(fromOffsets: $0, toOffset: $1)}
                .onDelete{ self.$itemsStore.remove(atOffsets: $0) }
            }
        }
    }

你们中的任何人都知道为什么或如何修复此错误以能够使用onMoveonDelete功能吗?

我会非常感谢你的帮助。

标签: iosswiftswiftuiswiftui-listxcode12

解决方案


如果我正确地成像你的TaskStore这里是代码的固定部分

List {
    ForEach(self.itemsStore.task) { task in
        Text(task.todoItem)
    }
    .onMove(perform: self.itemsStore.move)
    .onDelete(perform: self.itemsStore.remove)
}

.onMoveand.onDelete是动态容器的修饰符,所以ForEach应该应用在那里,并通过引用放置相应的函数。


推荐阅读