SwiftUI Binding Error: Why does this not work?
SwiftUI Binding Error: Why does this not work?
我在以下 SwiftUI 代码片段中设置 Binding
时遇到问题。我正在 xCode Beta 7 ((11M392r).
上尝试这个
在下面的代码片段中,我创建了 2 个 Stepper 视图。
如果我将 $student.totalMarks
传递给 Stepper,它会工作并创建正确的绑定。
但是如果我尝试访问 $student.marks.score1
,那将不起作用并显示以下编译错误:
Generic parameter 'Subject' could not be inferred
.
有没有办法将单个字段从嵌套 属性 传递到绑定中?
struct Marks {
public let score1: Int
public let score2: Int
public let score3: Int
}
class Student: ObservableObject {
@Published var totalMarks: Int = 145
@Published var marks = Marks(score1: 67, score2: 56, score3: 64)
}
struct ContentView: View {
@ObservedObject var student = Student()
var body: some View {
return VStack {
Stepper("Total Score: \(student.totalMarks)", value: $student.totalMarks)
Stepper("Score 1: \(student.marks.score1)", value: $student.marks.score1)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
简单。 ;-) 不要将常量用于步进器的值绑定。而是让你的分数变量(在结构 Marks
中使用 var
而不是 let
)。
我在以下 SwiftUI 代码片段中设置 Binding
时遇到问题。我正在 xCode Beta 7 ((11M392r).
在下面的代码片段中,我创建了 2 个 Stepper 视图。
如果我将 $student.totalMarks
传递给 Stepper,它会工作并创建正确的绑定。
但是如果我尝试访问 $student.marks.score1
,那将不起作用并显示以下编译错误:
Generic parameter 'Subject' could not be inferred
.
有没有办法将单个字段从嵌套 属性 传递到绑定中?
struct Marks {
public let score1: Int
public let score2: Int
public let score3: Int
}
class Student: ObservableObject {
@Published var totalMarks: Int = 145
@Published var marks = Marks(score1: 67, score2: 56, score3: 64)
}
struct ContentView: View {
@ObservedObject var student = Student()
var body: some View {
return VStack {
Stepper("Total Score: \(student.totalMarks)", value: $student.totalMarks)
Stepper("Score 1: \(student.marks.score1)", value: $student.marks.score1)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
简单。 ;-) 不要将常量用于步进器的值绑定。而是让你的分数变量(在结构 Marks
中使用 var
而不是 let
)。