gpt4 book ai didi

View 体中的swiftui三元运算符

转载 作者:行者123 更新时间:2023-12-01 22:27:57 27 4
gpt4 key购买 nike

在 swiftyui 主体内,基于 news.urlToImage 值,我需要能够加载另一个 View (LOadRemoteImageView,这只是另一个接受可选 url 字符串来加载远程图像的 View ),或者显示一个文本字符串“没有图片网址”。

按照下面的语法,它工作正常

if news.urlToImage == nil {
Text("no image url")
}else {
LoadRemoteImageView(withURL: news.urlToImage!).frame(width: 140, height: 140)
}

但是,当尝试内联代码时,它失败了,intellisense 没有正确的错误消息
news.urlToImage == nil ? Text("no image") : LoadRemoteImageView(withURL: news.urlToImage!)

如果 urlToImage: String 不是 nil,也尝试使用 map 来显示两个 View 中的任何一个,但也失败了
news.urlToImage.map {
$0 != nil ? LoadRemoteImageView(withURL: $0) : Text("no image")

}

最佳答案

这都是关于类型的……行表达式 的结果必须 生成单一类型。所以如果你喜欢三元运算符,你应该像这样使用它

news.urlToImage == nil ? AnyView(Text("no image")) : 
AnyView(LoadRemoteImageView(withURL: news.urlToImage!))

或类似的东西……对我来说,常规的 if/else 更好。

关于 View 体中的swiftui三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60027295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com