swift - 包含声明的闭包不能与函数构建器 'ViewBuilder' 一起使用

标签 swift swiftui

我不能在 swift ui view 块中声明一个变量

 var body: some View {
     let isHuman = false
     Text("Levels \(isHuman)")
 }

最佳答案

你不应该在 SwiftUI 构建器块内创建一个变量,你应该在主体范围之外创建它,

  var isPlaying = false

  var body: some View {
      Text("Levels \(isPlaying)")
  }
Swift UI 使用一个函数构建器块,该块只能包含构建器可以理解的内容。
那么你应该在构建块里面写的只是 View 类型和[ View ]
但是,如果你想声明一个变量,你可以通过将它引入一个新的子类来解决它
此功能的目的是在 Swift 中启用嵌入式 DSL 的创建——允许您定义可以翻译成其他内容的内容
另外,你可以使用。
 @State var isPlaying: Bool = false
笔记

review your code twice before doing the workaround, probably you have a misunderstanding about how swift-UI works?

关于swift - 包含声明的闭包不能与函数构建器 'ViewBuilder' 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58789654/

相关文章:

swift - NSNumberFormatter stringFromNumber 应该能够接受 Swift.Int 吗?

swift - UITableView 重叠一切

swift - 如何在 SwiftUI 中绘制圆的径向切片? (即饼状图)

ios - 如何将 SFSafariViewController 与 SwiftUI 一起使用?

swift - Xcode Playground 上的 SwiftUI 和 foreach 问题

ios - iOS中的超链接识别

Swift set delegate to self 给出 EXC_BAD_ACCESS

ios - 如何修复 UIPageViewController 手动分页?

ios - SwiftUI 根据设备设置 navigationViewStyle

SwiftUI 在 NavigationLink 上滑动/拖动