我在以下SwiftUI代码片段中设置Binding
时遇到问题。我正在xCode Beta 7((11M392r)。
在下面的代码段中,我正在创建2个步进视图。
如果我将$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()
}
}
答案 0 :(得分:1)
容易。 ;-)不要将常量用于步进器的值绑定。而是使您的分数变量(在结构var
中使用let
而不是Marks
)。