SwiftUI - 我们如何重新绑定绑定的可选参数?
Posted
技术标签:
【中文标题】SwiftUI - 我们如何重新绑定绑定的可选参数?【英文标题】:SwiftUI - How can we rebind a binded optional parameter? 【发布时间】:2021-04-26 19:18:33 【问题描述】:我正在创建一个接受可选文本值的文本控件。如果提供了值,我想显示 TextField 控件,否则使用文本控件。你能指导我如何将已经绑定的值重新绑定到文本字段
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!)
【问题讨论】:
这能回答你的问题吗? SwiftUI Optional TextField 【参考方案1】:太好了,我找到了解决办法
//'''
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))
//'''
【讨论】:
您可以用.constant("")
替换您的$dummyText
以避免仅为此创建@State var dummyText
:)【参考方案2】:
你的情况要简单得多,只是
TextField("Enter value", text: Binding($value)!)
【讨论】:
以上是关于SwiftUI - 我们如何重新绑定绑定的可选参数?的主要内容,如果未能解决你的问题,请参考以下文章