gpt4 book ai didi

swift - 三元条件在 SwiftUI 中不起作用

转载 作者:行者123 更新时间:2023-12-03 23:59:07 25 4
gpt4 key购买 nike

谁知道 SwiftUI 是否支持三元条件?我有一个带有条件参数的 TextView (Text(badgeCount == nil ? "":"\(badgeCount!)")),它显示一个空 View 。令人惊讶的是,如果我从 View 中删除 @State 属性,它会起作用。

import SwiftUI

struct RedBadgeView: View {
@State var badgeCount: Int?

init (_ badgeCount: Int? = nil) {
self.badgeCount = badgeCount
}

var body: some View {
// Something about this Syntax is throwing off SwiftUI.
Text(badgeCount == nil ? " " :"\(badgeCount!)")
}
}

struct RedBadgeView_Previews: PreviewProvider {
static var previews: some View {
RedBadgeView(1)
}
}

最佳答案

这里根本不需要使用三元运算符。此外,在三元运算符中进行 nil 检查然后强制展开是一个坏主意。

相反,您应该使用可选链接来访问 badgeCountdescription 并提供 "" 作为默认值。

Text(badgeCount?.description ?? " ")

但是, View 未更新的问题来自于您从未初始化 State 的事实,您只需为其包装的值分配一个值。要访问状态,您需要在变量名之前使用 _ 前缀。

init (_ badgeCount: Int? = nil) {
self._badgeCount = State(initialValue: badgeCount)
}

关于swift - 三元条件在 SwiftUI 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64790154/

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