在 swiftyui 主体内部,基于 news.urlToImage 值,我需要能够加载另一个视图(LOadRemoteImageView,这只是另一个接受可选 url 字符串来加载远程图像的视图),或者显示文本字符串“没有图像网址”。
按照下面的语法,它工作得很好
if news.urlToImage == nil {
Text("no image url")
}else {
LoadRemoteImageView(withURL: news.urlToImage!).frame(width: 140, height: 140)
}
但是,当尝试内联代码时,它会失败,并且智能感知没有正确的错误消息
news.urlToImage == nil ? Text("no image") : LoadRemoteImageView(withURL: news.urlToImage!)
如果 urlToImage: String 不为零,还尝试使用 map 显示两个视图中的任何一个,但也失败
news.urlToImage.map {
$0 != nil ? LoadRemoteImageView(withURL: $0) : Text("no image")
}
一切都与类型有关...行表达式的结果must生成单一类型。所以如果你这么喜欢三元运算符,你应该像这样使用它
news.urlToImage == nil ? AnyView(Text("no image")) :
AnyView(LoadRemoteImageView(withURL: news.urlToImage!))
或类似的东西......对于我来说经常if/else
更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)