Swiftui 导航到其他视图时,NavigationLink能否执行异步功能?

Swiftui 导航到其他视图时,NavigationLink能否执行异步功能?,swiftui,swiftui-navigationlink,swiftui-navigationview,Swiftui,Swiftui Navigationlink,Swiftui Navigationview,我正在尝试在SwiftUI中创建一个导航链接,该链接登录用户并导航到下一个屏幕 我已经尝试使用.Simultaneous手势,如下所示,基于。当我让它执行一个简单的操作(例如打印(“hello”)时,代码工作正常并导航到下一页,但当我让它执行authState.signUp函数(异步)时,它调用该函数但不导航到下一页 我有没有别的办法来处理这个问题 NavigationLink(destination: NextView()) { Text("Create account&qu

我正在尝试在SwiftUI中创建一个导航链接,该链接登录用户并导航到下一个屏幕

我已经尝试使用.Simultaneous手势,如下所示,基于。当我让它执行一个简单的操作(例如打印(“hello”)时,代码工作正常并导航到下一页,但当我让它执行authState.signUp函数(异步)时,它调用该函数但不导航到下一页

我有没有别的办法来处理这个问题

NavigationLink(destination: NextView()) {
    Text("Create account")
}
.simultaneousGesture(TapGesture().onEnded {
    authState.signUp(user: user)
})

您可以使用navigationLink的选择参数

添加此变量

@State var trigger: Bool? = nil
和使用

NavigationLink(destination: NextView(), tag: true,
                                   selection: $trigger ) {
}

当您的其他工作(登录)完成时,toggle()触发器和navigationLink将启动。

谢谢!我最终使用了一种非常类似的策略来设置触发器状态变量,但我在NavigationLink中使用了isActive而不是标记和选择。很高兴能提供帮助。