如何为表中的 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 赋予默认值的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Flutter 中的文本赋予边框/背景?

如何为instagram中的图像赋予效果[关闭]

如何为侧菜单中的特定选项赋予功能

如何为 Oracle 中的列组合赋予唯一约束?

如何为我的帖子列表中的每个帖子赋予随机颜色

请教如何修改WPFDatePicker控件的默认值默