无法将“字符串”类型的值转换为预期的参数类型“绑定<字符串>”

blksld

我是SwiftUi的新手,但遇到了我无法修复的错误。基本上,我想在SettingsView中更改AB类的名称属性。

另外,我也提出了一些问题,希望任何人都可以回答。

  1. 当我已经在我的User类中将AB类设为@Published属性时,是否必须将AB类设为具有@Published属性的ObservableObject?
  2. AB类应该是结构吗?我正在使用类User作为EnvironmentObject
class User: ObservableObject {
   @Published var name: String
   ...
   @Publsihed var ab: [AB]
   @Published var currentAb: AB?

   internal init(name: String, ab: [AB]) {
      self.name = name
      self.ab = ab
      self.currentAb = ab.first
   }
}
class AB: ObervableObject {
    @Published var name: String
    ...
}

由于TextField(“新名称”,文本:$ user.currentAb.wrappedValue.name),我在这里收到错误消息。

struct SettingsView: View {

@EnvironmentObject var user: User

var body: some View {
        Form { //Error: Unable to infer complex closure return type; add explicit type to disambiguate
           Section(header: Text("")) {
                TextField("new name", text: $user.currentAb.wrappedValue.name) // <- Error is shown here
                    .textFieldStyle(RoundedBorderTextFieldStyle())
            }
        }
}

谢谢。

他的脾气

最好将其分成不同的视图,例如

var body: some View {
        Form {
           Section(header: Text("")) {
               if user.currentAb != nil {
                  SomeNameView(vm: user.currentAb!)
               } else {
                  Text("any holder view here")
               }
            }
        }
}

和分开的看法

struct SomeNameView: View {
    @ObservedObject var vm: AB

    var body: some View {
       TextField("new name", text: $vm.name)
           .textFieldStyle(RoundedBorderTextFieldStyle())
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

错误:无法将类型“ URL”的值转换为预期的参数类型“字符串”

无法将“字符串”类型的值转换为预期的参数类型“ _?”

无法将字符串类型的值转换为预期的参数类型NSManagedObject

无法将类型“()”的值转换为预期的参数类型“字符串”

无法将“字符串”类型的值转换为预期的参数类型“布尔”

无法将字符串类型的值转换为预期的参数类型 Int

无法将“字符串”类型的值转换为预期的参数类型“类别”

无法将“Void”类型的值转换为预期的参数类型“(字符串)-> Void”

无法转换值类型“字符串”?到预期的参数类型“ inout字符串”

无法在 SwiftUI 中将“图像”类型的值转换为预期的参数类型“字符串”

Xcode 8.1 Swift 3错误:无法将类型“字符串”的值转换为预期的参数类型“ UnsafeMutableRawPointer”

无法在swift2中将字符串类型的值转换为预期的参数类型int

通知中心 - 无法将“选择器”类型的值转换为预期的参数类型“字符串”

如何在此for循环中修复“无法将类型为“字符串”的值转换为预期的参数类型为“ Int”的类型

无法转换'[String]类型的值?” 到预期的参数类型“字符串”

无法转换类型为'NSStoryboardSegue.Identifier?'的值?到预期的参数类型“字符串”

无法转换“字符串”类型的值?到预期的参数类型 '_?'

无法转换“字符串”类型的值?到预期的参数类型“类?”

无法转换“字符串”类型的值?到预期的参数类型“ URL”

如何解决无法转换“字符串”类型的值?到预期的参数类型“ URL”

无法转换“字符串”类型的值?到预期的参数类型'Int64'Swift iOS

将类型转换为字符串

无法将nil转换为字符串类型

无法将字符串转换为“ Double”类型

无法将类型字符串转换为Bool

无法将char类型转换为字符串

C# 无法将类型转换为字符串

无法将类型“字符串”转换为“整数”?

熊猫-将值转换为类型字符串以浮动