【发布时间】:2020-01-12 20:38:52
【问题描述】:
我在有条件地打印本地化文本时遇到问题。例如,这可以正确本地化:
if valueFromDb.isEmpty {
Text("value_is_empty") //localized text
} else {
Text(valueFromDb)
}
如果 valueFromDb 为空,它会以用户的语言打印一些文本,如果 valueFromDb 不是,它会按原样打印。但是,当我尝试使用三元运算符时,它不起作用:
Text(valueFromDb.isEmpty ? "value_is_empty" : valueFromDb)
当 valueFromDb 为空时,它会打印“value_is_empty”而不是实际的本地化文本。尝试将其转换为 LocalizedStringKey 时,我得到一个错误(由于 SwiftUI,在层次结构中的随机更高)。
编辑:明确地说,我知道我可以这样做:
valueFromDb.isEmpty ? Text("value_is_empty") : Text(valueFromDb)
但是,我想将三元条件放在 Text() 括号内,因为我会为多个视图执行此操作,并且每个视图都有很多修饰符,因此代码会变得非常臃肿。
【问题讨论】:
标签: swiftui