SwiftUI TextField CoreData - 更改属性的数据
SwiftUI TextField CoreData - Changing an attribute's data
我正在尝试使用 TextField 更改 CoreData 的属性数据,但我想出的所有方法都没有成功。有一个类似的问题(下面列出),我将 post 从正确答案中提取代码来解释它。
struct ItemDetail: View {
@EnvironmentObject var itemStore: ItemStore
let idx: Int
var body: some View {
NavigationView {
Stepper(value: $itemStore.items[idx].inventory) {
Text("Inventory is \(self.itemStore.items[idx].inventory)")
}
// Here I would like to do this
// TextField("PlaceHolder", $itemStore.items[idx].name)
// That doesn't work... also tried
// TextField("PlaceHolder", $name) - where name is a @State String
// How can you then automaticlly assign the new value of @State name
// To $itemStore.items[idx].name?
.padding()
.navigationBarTitle(itemStore.items[idx].name)
}
}
}
原问题:
我现在可以使用了。
struct ItemDetail: View {
@EnvironmentObject var itemStore: ItemStore
let idx: Int
// Added new @State variable
@State var name = ""
var body: some View {
NavigationView {
Stepper(value: $itemStore.items[idx].inventory) {
Text("Inventory is \(self.itemStore.items[idx].inventory)")
}
TextField("Placeholder", text: $name) {
// When the enter key is tapped, this runs.
self.itemStore.items[self.idx].name = self.name
}
.padding()
.navigationBarTitle(itemStore.items[idx].name)
}
}
}
我正在尝试使用 TextField 更改 CoreData 的属性数据,但我想出的所有方法都没有成功。有一个类似的问题(下面列出),我将 post 从正确答案中提取代码来解释它。
struct ItemDetail: View {
@EnvironmentObject var itemStore: ItemStore
let idx: Int
var body: some View {
NavigationView {
Stepper(value: $itemStore.items[idx].inventory) {
Text("Inventory is \(self.itemStore.items[idx].inventory)")
}
// Here I would like to do this
// TextField("PlaceHolder", $itemStore.items[idx].name)
// That doesn't work... also tried
// TextField("PlaceHolder", $name) - where name is a @State String
// How can you then automaticlly assign the new value of @State name
// To $itemStore.items[idx].name?
.padding()
.navigationBarTitle(itemStore.items[idx].name)
}
}
}
原问题:
我现在可以使用了。
struct ItemDetail: View {
@EnvironmentObject var itemStore: ItemStore
let idx: Int
// Added new @State variable
@State var name = ""
var body: some View {
NavigationView {
Stepper(value: $itemStore.items[idx].inventory) {
Text("Inventory is \(self.itemStore.items[idx].inventory)")
}
TextField("Placeholder", text: $name) {
// When the enter key is tapped, this runs.
self.itemStore.items[self.idx].name = self.name
}
.padding()
.navigationBarTitle(itemStore.items[idx].name)
}
}
}