简体   繁体   English

在“NavigationLink”上引用初始化程序“init(destination:label:)”

[英]Referencing initializer 'init(destination:label:)' on 'NavigationLink'

I'm trying to make a List but getting error as below code.我正在尝试创建一个List ,但收到如下代码的错误。

struct BookView: View {

    var books : [BookModel] = []
    var body: some View {

        NavigationView {
            List(self.books, id: \.self) { book in
                NavigationLink(destination: Text(book.title ?? "Unknown Title")) {
                    BooksRow(book: book)
                }
            }
        }
    }
}

struct BookModel: Hashable {
    var title: String?
    var author: String?
}

struct BooksRow {

    let book : BookModel
    var body: some View {

        VStack {
            Text(book.title ?? "Unknown Title")
                .font(.headline)
            Text(book.author ?? "Unknown Author")
                .foregroundColor(.secondary)
        }
    }
}

Error: Referencing initializer 'init(destination:label:)' on 'NavigationLink' requires that 'BooksRow' conform to 'View'错误:在“NavigationLink”上引用初始化程序“init(destination:label:)”要求“BooksRow”符合“View”

Here is fix这是修复

struct BooksRow: View { // << here !!

    let book : BookModel
    var body: some View {

    // ... your other code
struct BooksRow: View { // Now it conforms to View-Protocol

        let book : BookModel
        var body: some View {

            VStack {
                Text(book.title ?? "Unknown Title")
                    .font(.headline)
                Text(book.author ?? "Unknown Author")
                    .foregroundColor(.secondary)
            }
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 NavigationLink init(_:destination:) 已弃用 - NavigationLink init(_:destination:) deprecated 在 SwiftUI 中有条件地更改 NavigationLink 目标 - Change NavigationLink destination conditionally in SwiftUI SwiftUI:NavigationView/NavigationLink:启动并推送目的地? - SwiftUI: NavigationView/NavigationLink: launch with destination pushed? SwiftUI:NavigationLink的目标视图的异构集合? - SwiftUI: heterogeneous collection of destination views for NavigationLink? 如果父对象有更新,则 ObservedObject 无法处理 NavigationLink 的目标 - ObservedObject not working on NavigationLink's destination if there are updates on parent 未启用 isActive 的 NavigationLink 打开目的地 - NavigationLink open destination without isActive enabled SwiftUI NavigationLink:如何在显示目标视图之前调用函数 - SwiftUI NavigationLink: how to call a function before showing destination view SwiftUI 不会在嵌套 NavigationLink 目标中使用 ObservedObject 更新 UI - SwiftUI doesn't update UI with ObservedObject in nested NavigationLink destination 快速使用未实现的初始化程序&#39;init()&#39; - Swift use of unimplemented initializer 'init()' 用于方便初始化的可用初始化程序失败 - Failable initializer for convenience init fails
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM