我有这样的看法:
struct CreateAccountButton : View {
@Binding var viewRouter: ViewRouter
var body: some View{
Button(action: {
withAnimation {
viewRouter.currentPage = .register
}
}) {
Text("create_account")
.padding(.vertical)
.frame(maxWidth: .infinity)
.foregroundColor(Color("ColorText"))
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(Color.white, lineWidth: 0))
}
.background(Color("BtnGreenBG"))
.frame(minWidth: 0, maxWidth: .infinity)
.cornerRadius(5)
.padding(.top, 12)
}
}
Run Code Online (Sandbox Code Playgroud)
我需要传递我在主视图中创建的 viewRouter:
@StateObject var viewRouter: ViewRouter
Run Code Online (Sandbox Code Playgroud)
我试过:
CreateAccountButton(viewRouter: $viewRouter)
Run Code Online (Sandbox Code Playgroud)
并得到:
Cannot convert value of type 'ObservedObject<ViewRouter>.Wrapper' to expected argument type 'Binding<ViewRouter>'
Run Code Online (Sandbox Code Playgroud)
我是 ios/swiftui 新手,不明白这个错误。
基于这个答案:
我们如何在 SwiftUI 中将 ObservedObject 类型的值转换为 Binding?
我变了
@Binding var …
Run Code Online (Sandbox Code Playgroud)