Я пишу приложение со списком задач, и у меня возникают проблемы при инициализации подробного представления. в HomeView я использую foreach для настройки каждой строки.
struct HomeListView: View {
ForEach(items) { item in
NavigationLink(destination: ItemDetailView(item: item, editMode: true)) {
ItemView(title: item.title, text: item.text, type: item.type, dueDate: item.dueDate)
}
}
в ItemDetailView я определил init () для установки заголовка, текста и других свойств.
struct ItemDetailView: View {
@State var title: String = ""
@State var text: String = ""
@State var type: Int = 0
@State var dueDate: Date = Date()
init(item: ItemEntity, editMode: Bool) {
self.title = item.title
self.text = item.text
self.type = item.type
self.dueDate = item.dueDate
self.item = item
print(item.title)
if self.title.isEmpty {
print(self.title)
}
self.editMode = editMode
print(self.editMode)
}
}
когда я запускаю приложение, в консоли оно печатает
2
true
4
true
я вижу, что init () получает элемент и правильно устанавливает режим редактирования, но я не могу понять, почему заголовок, текст, тип и Свойства dueDate устанавливаются в их значения по умолчанию вместо значений в элементе, которые получает init.
это имеет какое-либо отношение к оболочке @State? как я могу установить их значения на то, что я хочу? Спасибо за помощь!