swift - 参数类型 '()'与预期的 'View'类型不一致SwiftUI吗?

标签 swift compiler-errors swiftui

我试图创建一个启动屏幕,然后设置动画到mainMenu,但出现标题中指定的错误。您可能会看到我正在尝试执行此操作。请帮忙。

struct Content: View {
    @State var ShowMainMenu = false
    var body: some View {
        VStack {
            if (ShowMainMenu) {
                MainMenu()
            } else {
                ContentView(ToMainMenu: $ShowMainMenu)
            }
        }
    }
}
struct ContentView: View {
    @Binding var ToMainMenu:Bool
    var body: some View {
        VStack {
            Text("I hate phone numbers")
            DispatchQueue.main.asyncAfter(deadline: .now()+1.5) {
                withAnimation {
                    self.ToMainMenu.toggle()
                }
            }
        } 
    }
}

最佳答案

您无法在view中执行代码,但可以在该onAppear中的view中执行某些操作:

struct ContentView: View {
    @State var ShowMainMenu = false
    var body: some View {
        VStack {
            if (ShowMainMenu) {
                Text("Hello")
            } else {
                Content(ToMainMenu: $ShowMainMenu)
            }
        }
    }
}
struct Content: View {
    @Binding var ToMainMenu: Bool
    var body: some View {
        VStack {
            Text("I hate phone numbers")
        }.onAppear() {
            DispatchQueue.main.asyncAfter(deadline: .now()+1.5) {
                withAnimation {
                    self.ToMainMenu.toggle()
                }
            }
        }
    }
}

注意:我必须更改ContentContentView的名称

我希望这有帮助。

关于swift - 参数类型 '()'与预期的 'View'类型不一致SwiftUI吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59326558/

相关文章:

ios - 使用 JSONDecoder 解压嵌套的 JSON 值

swift - Swift 3 中的对齐内存

c++ - 字符串前应为 ')'

swift - SwiftUI 延迟一段时间后如何显示新 View

ios - SwiftUI View 无需输入自动滚动到底部

ios - 如何在 SwiftUI 中为一系列路径的形状绘制边框?

ios - 在 Swift 中将参数传递给 NSTimer 调用的方法

json - 在 Swift 中解析 Gravatar 配置文件 JSON

java - 编译错误失败,而不是在运行时抛出 “Unresolved compilation problem”

java - 无法访问列表 : "expression must be an array type" 中的元素