首页 > 解决方案 > 参数类型“()”不符合预期类型“视图”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()
                }
            }
        } 
    }
}

标签: swiftcompiler-errorsswiftui

解决方案


你不能在 a 中执行代码,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

我希望这有帮助。


推荐阅读