如何从传入的@Binding变量中存储单个变量

  • 本文关键字:变量 存储 单个 @Binding swiftui
  • 更新时间 :
  • 英文 :


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())
    }
}

最新更新