gpt4 book ai didi

swift - 在 SwiftUI 中使用可选项进行条件渲染

转载 作者:搜寻专家 更新时间:2023-11-01 06:25:20 27 4
gpt4 key购买 nike

来自 React 背景,如果定义了值,则很容易只呈现 View 。它看起来像这样:

function Component ({ profile }) {
return (
<div>{profile && <div>{profile.name}}</div>
)
}

但我发现在 SwiftUI 中复制这种模式要困难得多。理想情况下,我们可以在我们的 View 中使用条件展开,但这目前不起作用。我能想出的唯一解决方案真的很不优雅:

struct ProfileView : View {
var profile: Profile?

var body : some View {
if let profile = profile {
return Text("profile: \(profile.bio)")
} else {
return Text("")
}
}
}

struct LayoutView : View {
@State var profile: Profile?
var body : some View {
Group {
ProfileView(profile: profile)
}
}.onAppear(perform: fetch)

// fetch method
}

有没有人有更好的策略来使用可选值进行条件渲染?

最佳答案

你可以反过来使用 map 来处理可选的,像这样:

struct ProfileView : View {
var profile: Profile?

var body : some View {
profile.map { Text("profile: \($0.bio)") }
}
}

(在此示例中,$0 是您展开的 profile。)

如果你需要其他情况:

profile.map { Text($0.bio) } ?? Text("Not available")

关于swift - 在 SwiftUI 中使用可选项进行条件渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56605815/

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