modelContext.insert 有效,但 modelContext.delete 在不是我的内容视图的任何视图中不会执行任何操作。在我的 ContentView modelContext 中工作正常,但如果在不是我的 ContentView 的任何视图中存在 DetailReminderView(),则添加到 modelContext 工作正常,但不能删除它(没有错误消息,并且按钮正确执行其他所有操作)
//
// ReminderDetailView.swift
// Always Remember
//
// Created by Friedrich Vorländer on 11.04.24.
//
import SwiftData
import SwiftUI
struct ReminderDetailView: View {
@Environment(\.modelContext) var modelContext
@Environment(\.dismiss) var dismiss
@State var allReminders: [Reminder]
var reminder: Reminder
var isntAdded: Bool {
!allReminders.contains { $0.phrase == reminder.phrase }
}
var body: some View {
NavigationStack {
ScrollView {
VStack(alignment: .trailing){
ReminderView(reminder: reminder, allReminders: allReminders)
.frame(maxWidth: .infinity, maxHeight: 500)
ShareLinkView(reminder: reminder)
}
}
.padding()
.navigationTitle(reminder.author)
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .destructiveAction) {
Button("Delete", systemImage: "trash", role: .destructive) {
modelContext.delete(reminder)
/*allReminders.removeAll{ $0.phrase == reminder.phrase }*/
print("Button Pressed")
dismiss()
}
.disabled(isntAdded)
}
ToolbarItem(placement: .confirmationAction) {
Button("Add to Reminder", systemImage: "plus.circle") {
modelContext.insert(reminder)
dismiss()
}
.disabled(!isntAdded)
}
}
}
}
}
我尝试从我的数组中删除从内容视图查询传递到 DetailView 的对象,但这没有帮助
问题是,ExploreView 中的提醒是预设的,您可以将其添加到 modelContext 中,以便将它们放在您的个人列表中。但它总是尝试删除预设的提醒,而不是插入的正确提醒。我通过将 ExploreReminders 数组设置为静态来修复此问题,因此 UUID 保持不变。我很抱歉用所提供的材料提出这个问题