swift - 参数类型“()”不符合预期类型“视图”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()
}
}
}
}
}
解决方案
你不能在 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()
}
}
}
}
}
注意:我不得不更改Content
和ContentView
我希望这有帮助。
推荐阅读
- python - 包括您在 re.findall 中拆分的文本
- javascript - 如何在 Electron 中通过 preload.js 请求模块
- laravel - 在 Vue 中对 prop 的多个方面使用 .includes 来构建搜索
- azure-data-factory - 如何在数据工厂中创建 Azure Data Lake Storage Gen 2 类型的数据集?
- terraform - terraform 根据条件选择资源
- c++ - C++ 使用模板专门化一个类模板
- nginx - 一个位置内的 nginx 行排序是否重要?
- kubernetes - 一个或多个容器没有资源限制 - VS Code Kubernetes 工具中的警告
- heroku - 如何将 Heroku ClearDB 连接到 MySQL Workbench?
- macos - 无法删除 \Library\Updates 中的某些文件夹