我收到以下编译错误: “在初始化之前使用的变量‘self.entryData’” 如何修复它并在我的 init 方法中正确初始化 @state var entryData?
struct EditEntryView: View {
@Environment(\.managedObjectContext) private var viewContext
@State var entryData: EditEntryData
@ObservedObject var moneyEntry: MoneyEntry
init(entry: MoneyEntry) {
moneyEntry = entry
let iOwe = entry.value < 0 ? true : false
let value = abs(entry.value)
entryData = EditEntryData(info: entry.infos, value: String(value), date: entry.date, iOwe: iOwe)
}
}
struct EditEntryData {
var info: String = ""
var value: String = ""
var date: Date = Date()
var iOwe: Bool = false
}
答案 0 :(得分:1)
你需要初始化状态本身,比如
_entryData = State(initialValue:
EditEntryData(info: entry.infos,
value: String(value), date: entry.date, iOwe: iOwe))