无法通过 SwiftUI 中的 @State 绑定变量切换视图

问题描述

我试图在视图文件之间传递一个状态变量以在视图之间导航,但它似乎不起作用。当按下注册按钮时,“view”变量会更新,但它不会改变视图。这是我目前实施方式的简化版本:

import SwiftUI
import FireBaseAuth

struct ContentView: View {
    @State private var view = "Main"
    
    var body: some View {
        
        if Auth.auth().currentUser?.uid == nil {
            LoginView(view: $view)
        }
        else if view == "Register" {
            RegisterView(view: $view)
        }
        else {
            MainView()
        }
    }
}

登录查看

import SwiftUI

struct LoginView: View {
    @Binding var view: String
    var body: some View {
        
        return vstack(content: {
            
            Button(
                action: {
                    view = "Register"
                    print(view)
                },label: {
                    Text("Register")
                })
            
        })
        
    }
}

注册查看

import SwiftUI

struct RegisterView: View {
    @Binding var view: String
    var body: some View {
        Text("Hi!")
        Button("Back",action: {
            view = "Login"
        })
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...