SwiftUI 中的 NavigationLink 不接受参数

Posted

技术标签:

【中文标题】SwiftUI 中的 NavigationLink 不接受参数【英文标题】:NavigationLink in SwiftUI won't accept arguments 【发布时间】:2021-01-14 18:48:34 【问题描述】:

我的 NavigationLink 似乎没有像宣传的那样工作,因为它不接受显示文本或视图的参数。我的代码如下:

struct MainContentView: View 
    var body: some View 
        // MARK: PROPERTIES
        
        let mainData: [MainData] =
            Bundle.main.decode("mainData.json")
        
        // MARK: BODY
        NavigationView 
            List 
                Image("hsSampleBack")
                    .resizable()
                    .scaledToFill()
                    .frame(height: 300)
                    .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
                
                ForEach(mainData)  mainDataPoint in
                    NavigationLink(destination: Selection() 
                            Text("Text Here")
                        )
                //:LOOP
             //: LIST
            .navigationBarTitle("Data Points", displayMode: .large)
         //: NAVIGATION
    

我的 NavigationLink 行收到以下 2 条错误消息:

传递给不带参数的调用的参数

调用中参数 #1 缺少参数

如果这些对您来说似乎矛盾,请加入俱乐部。一方面,它声称不允许任何参数,然后它标记一个缺少的参数。它似乎想要调用一个“标签”文本参数,这很好,除了我最终想要传递一个视图,我在其他地方已经成功完成了。

对此有什么想法吗?

【问题讨论】:

【参考方案1】:

这里是更正的语法

    ForEach(mainData)  mainDataPoint in
        NavigationLink(destination: Selection()) 
                Text("Text Here")
            
    //:LOOP

【讨论】:

以上是关于SwiftUI 中的 NavigationLink 不接受参数的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中的 NavigationLink 不接受参数

表单/表格中的 SwiftUI 多个 NavigationLink - 条目保持突出显示

使用 XCTestCases 类中的可访问性标识符访问 NavigationLink - SwiftUI

LazyVGrid 中的 NavigationLink 循环返回所有条目,SwiftUI

NavigationLink SwiftUI 中的三元运算符

为啥我的 SwiftUI 应用程序在 `NavigationView` 中的 `navigationBarItems` 内放置 `NavigationLink` 后向后导航时崩溃?