有时候我想把一个值传递给@Binding属性,有时候我不想。
struct ParentView: View {
@State var prop = 0.0
var body: some View {
ChildView(prop: $prop) // Error: Cannot convert value of type 'Binding<Double>' to expected argument type 'Binding<Double?>'
ChildView() // sometimes I do not want pass anything
}
}
struct ChildView: View {
@Binding var prop: Double?
init(prop: Binding<Double?> = .constant(nil)) {
_prop = prop
}
var body: some View {
Text("Child View")
}
}
解决方案可以是以下代码。
@State var prop: Double? = 0.0
但是,如果可能的话,我不想将@State属性定义为Optional类型。
还有别的办法吗
3条答案
按热度按时间sxissh061#
这里有一个解决方案,可以消除w/和w/o值绑定的歧义。
使用Xcode 11.4 / iOS 13.4测试
wljmcqd82#
使常数为0。
kxeu7u2r3#
这是Xcode中显示的一般错误。尝试将值转换为所需的数据类型,如下所示:
使用回退值,以便如果输入是nan或错误的,它将使用该值。