My@Binding权重变量在我的代码中连接到我的真理源。但我也需要让我的用户用TextField((来编辑它。因此,我尝试创建一个String类型的局部变量,因为TextField需要Bindable类型。
也许我处理得不对。
struct SetsBar: View {
@Binding var weight: Int
@Binding var reps: Int
@State var weightString: String = String(weight)
init(weight: Binding<Int>, reps: Binding<Int>) {
self._weight = weight
self._reps = reps
}
var body: some View {
HStack {
TextField("(weight)", text: $weightString)
}
}
}
我在@State属性上遇到错误
Cannot use instance member 'weight' within property initializer; property initializers run before 'self' is available
您可以使用TextField
变体与格式化程序直接绑定weight
(根据需要配置格式化程序,下面是演示的简化变体(,如
var body: some View {
HStack {
TextField("(weight)", value: $weight, formatter: NumberFormatter())
}
}