Xcode SwiftUI-如何重新绑定绑定的可选参数?

Xcode SwiftUI-如何重新绑定绑定的可选参数?,xcode,swiftui,Xcode,Swiftui,我正在创建一个文本控件,它接受可选的文本值。如果提供了该值,我希望显示TextField控件,否则使用Text控件。您能指导我如何将已绑定的值重新绑定到文本字段吗 struct TextBoxControl: View { var text : String @Binding var value : String? var body: some View { if (value == nil ) { Tex

我正在创建一个文本控件,它接受可选的文本值。如果提供了该值,我希望显示TextField控件,否则使用Text控件。您能指导我如何将已绑定的值重新绑定到文本字段吗

struct TextBoxControl: View {
    var text : String
    @Binding var value : String?
    
    var body: some View {
        if (value == nil )
        {
            Text(text)
        }
        else
        {
            TextField("Enter value", text: $value!)
        }
    }
}

太好了,我找到了解决办法

//'''
struct TextBoxControl: View {
var text : String
//@Binding var value : String?
var value : Binding<String>?


@State var dummyText : String = ""

var body: some View {
    if (value == nil )
    {
        Text(text)
    }
    else
    {
        TextField("Enter value", text: (value!) ?? $dummyText)
    }
}
}
struct TextBoxControlTest: View {
var text : String
@State var txt : String
//var value : Binding<String>?


@State var dummyText : String = ""

var body: some View {
    TextBoxControl(text: "ddd", value: ($txt))
}
}
//'''
/''
结构TextBoxControl:视图{
变量文本:字符串
//@绑定变量值:字符串?
var值:绑定?
@状态变量dummyText:String=“”
var body:一些观点{
如果(值==nil)
{
文本(文本)
}
其他的
{
文本字段(“输入值”,文本:(值!)??$dummyText)
}
}
}
结构TextBoxControlTest:视图{
变量文本:字符串
@状态变量txt:String
//var值:绑定?
@状态变量dummyText:String=“”
var body:一些观点{
TextBoxControl(文本:“ddd”,值:($txt))
}
}
//'''

对于您的情况来说,这要简单得多,只是

TextField("Enter value", text: Binding($value)!)

这回答了你的问题吗?您可以将
$dummyText
替换为
.constant(“”
,以避免仅为以下内容创建
@State var dummyText