如何为表中的 TableColumn 赋予默认值
Posted
技术标签:
【中文标题】如何为表中的 TableColumn 赋予默认值【英文标题】:How to give default value to TableColumn in Table 【发布时间】:2021-06-11 09:28:55 【问题描述】:我有这个示例代码:
struct Item: Identifiable
var id = UUID()
var name: String?
struct ItemTable: View
let items: [Item]
var body: some View
Table(items)
TableColumn("Name", value: \.name)
我收到以下错误:
键路径值类型“字符串?”无法转换为上下文类型“字符串”
我可以使用\.name!
解决问题,但我想提供一个默认值(类似于\.name ?? "default"
)。
我怎样才能做到这一点?
【问题讨论】:
@JoakimDanielson 更改模型结构似乎并不理想。 你可以给 Item 结构中的 name 一个默认值,比如 var name:String = “”,而不是让它成为可选的。 【参考方案1】:有一个TableColumn
init 可以让您在闭包中创建内容
var body: some View
Table(items)
TableColumn("Name") item in
Text(item.name ?? "default")
或者用包装的属性解决它
extension Item
var itemName: String
name ?? "default"
在视图中
var body: some View
Table(items)
TableColumn("Name", value: \.itemName)
【讨论】:
以上是关于如何为表中的 TableColumn 赋予默认值的主要内容,如果未能解决你的问题,请参考以下文章