相关疑难解决方法(0)

如何在Swift的绑定中解开可选值?

我正在使用SwiftUI构建应用,并希望将a转换Binding<Value?>Binding<Value>。

在我的应用程序中,我有一个AvatarView,它知道如何为特定用户渲染图像。

struct AvatarView: View {
  @Binding var userData: UserData

  ...
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序拥有一个ContentView拥有两个绑定的:一个ID用户字典,以及我们应显示其头像的用户ID。

struct ContentView: View {
  @State var userById: Dictionary<Int, UserData>
  @State var activeUserId: Int

  var body: some View {
    AvatarView(userData: $userById[activeUserId])
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:上面的代码没有合并,因为$userById[activeUserId]它是类型的,Binding<UserData?>并且AvatarView包含一个Binding<UserData>

我尝试过的事情

  • $userById[activeUserId]!不起作用,因为它正在尝试打开Binding<UserData?>。您只能解开一个Optional,而不能解开一个Binding<Optional>

  • $(userById[activeUserId]!)由于我尚不了解的原因而无法正常工作,但是我认为有关$问题在编译时已解决,因此您似乎无法在任意表达式前添加前缀$

ios swift swiftui combine

5
推荐指数
1
解决办法
195
查看次数

标签 统计

combine ×1

ios ×1

swift ×1

swiftui ×1