【问题标题】:Reference to member 'default' cannot be resolved without a contextual type如果没有上下文类型,则无法解析对成员“默认”的引用
【发布时间】:2020-04-23 01:31:12
【问题描述】:

此代码出现此错误,我不知道这意味着什么:

.alert(isPresented: $showingAlert) {
                    Alert(title: Text(alertTitle), message: Text(alertMessage), dismissButton: .default(Text("OK")))

请帮忙。

【问题讨论】:

  • SwiftUI 中的错误通常不会显示它们的真实位置。请添加所有 ContentView 的代码 sn-p
  • 您可能没有将 .alert 放在正确的位置。例如,您可能已将其添加到按钮标签闭包中,而不是将其作为修饰符放置在按钮或其他视图中。进一步的代码会很有用。

标签: swiftui


【解决方案1】:

我也遇到了这个问题,Xcode 变得一团糟。我最终要解决的问题是:

首先,在计算属性中创建警报:

 var alert: Alert {
        Alert(title: Text("Oops"), message: Text("Error Message"), dismissButton: .default(Text("Dismiss")))
    }

然后在你的 superview 结束时使用 alert 属性:

@State var showAlert = false
 var body: some View {
     ZStack {
             ...
     }.alert(isPresented: $showAlert, content: { self.alert })
 }

我希望这个解决方案也适合你。

【讨论】:

    【解决方案2】:

    我收到此错误消息是因为括号(圆括号)未正确配对。您的代码有效,这些版本也有效(使用不是“单行”的代码和编辑器/结构/重新缩进也有助于查看可能出现的问题:-)):

    .alert(isPresented: $showAlert) {
        Alert(title: Text("Title"),
              message: Text("An alert"),
              primaryButton: .default(Text("OK"), action: {
              }),
              secondaryButton: .cancel(Text("Cancel"), action: {
              })
        )
    }
    

    或者这个:

    .alert(isPresented: $showAlert) {
        Alert(title: Text("Title"),
              message: Text("An alert"),
              primaryButton: .default(Text("OK")) {
              },
              secondaryButton: .cancel(Text("Cancel"))
        )
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多