将字符串值从另一个视图传递给视图构建器

Passing a String value to a viewbuilder from another view

这是基本视图

struct BaseView<Content: View>: View {
    @State private var ShowSFView : Bool = false
   
    let content: Content
   
    init(@ViewBuilder content:  () -> Content ) {
        self.content = content()
     
        
    }

//Code for button and URL

}

当我调用此 baseView 时,我需要从另一个视图向此 BaseView 传递两个字符串值。一个用于按钮标签,另一个用于 URL.

我无法通过在初始化程序上声明变量来完成此操作,出现各种错误。怎样才能 我做到了?

编辑

baseView 中的初始化程序

init(@ViewBuilder content:  () -> Content , btnlabel: String) {
        self.content = content()
        self.btnlabel=btnlabel
        
    }

我是如何从另一个视图调用它的

 BaseView.init(content: () -> _, btnlabel: "")

您可以像普通初始化一样传递任何参数或字符串参数。

struct BaseView<Content: View>: View {
    
    @State private var ShowSFView : Bool = false
    
    private let content: Content
    
    let stringOne: String
    let stringTwo: String
    
    init(stringOne: String, stringTwo: String, @ViewBuilder content:  () -> Content ) {
        self.content = content()
        self.stringOne = stringOne
        self.stringTwo = stringTwo
    }
    
    var body: some View {
        Text(stringOne)
        Text(stringTwo)
    } 
}

现在可以像

一样使用了
BaseView(stringOne: "str1", stringTwo: "str2") {
    // Content
}

编辑

根据你的例子,你可以像这样使用它

BaseView(content: {
    // Content
}, btnlabel: "Lable")