You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI导航时如何将零散参数组装为Book结构体传入目标视图

解决方案

Swift 中的自定义结构体默认会自动生成成员级构造器,不需要你手动编写构造方法,直接把零散字段按属性要求传入即可生成符合要求的Book实例。

前提条件

你的Book结构体中所有存储属性都没有默认值,构造时必须传入全部5个属性的对应值,你需要先确认自己持有group(分组)和name(书名)两个字段的取值。

实现步骤

  1. 构造Book实例
    把你持有的零散字段传入构造器即可:
    let book = Book(
        id: book_id,
        author: author,
        chapters: chapters,
        group: 你持有的分组对应值,
        name: 你持有的书名对应值
    )
    
  2. 写NavigationLink跳转逻辑
    直接把构造好的实例传入BookView:
    NavigationLink {
        BookView(book: book)
    } label: {
        Text("返回书籍页")
    }
    

特殊场景处理

如果你确实无法获取group和name的取值,可以给这两个属性添加默认值,后续构造时就可以省略这两个参数:

struct Book: Decodable, Identifiable {
    var id: Int
    var author: String
    var chapters: Int
    // 添加默认空字符串
    var group: String = ""
    var name: String = ""
}
// 构造时可以省略有默认值的参数
let book = Book(id: book_id, author: author, chapters: chapters)

优化建议

如果你是从BookView跳转进入ChapterView,建议跳转时直接把完整的Book实例传给ChapterView,不需要拆分零散字段传递,后续返回时可以直接复用该实例,减少参数传递出错的概率。


内容的提问来源于stack exchange,提问作者erikvm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:45:04