【问题标题】:Why it says "Trailing closure passed to parameter of type 'Int' that does not accept a closure"?为什么它说“尾随闭包传递给不接受闭包的'Int'类型参数”?
【发布时间】:2021-07-22 08:07:25
【问题描述】:

我在 SwiftUI 项目中为 Onboarding Screen 添加了第二个 TabView,它会抛出类似的错误

尾随闭包传递给“Int”类型的参数 接受关闭

有什么想法吗?

 TabView {
    ForEach(0 ..< onboardingData.count) { index in
        let element = onboardingData[index]
        OnboardingCard(onboardingItem: element)
    }
   
}

入职卡:

fileprivate struct OnboardingCard: View {
    let onboardingItem: OnboardingItem
        var body: some View {
            VStack {
                Image(onboardingItem.imageName)
                 .resizable()
                 .frame(height: 320)
                 .frame (maxWidth: .infinity)
                Text(onboardingItem.title)
                .font(.title)
                    .foregroundColor(.black)
                .bold()
                .padding()
                Text(onboardingItem.description)
               .multilineTextAlignment(.center)
               .font(.body)
                .foregroundColor(.gray)
               .padding (.horizontal, 15)
               }
              }
             }
        
 
struct OnboardingItem {
    let imageName: String
    let title: String
    let description: String
}

【问题讨论】:

  • 去掉0后面的空格。
  • 你能提供一个minimal reproducible example吗?
  • @mahan,非常感谢您的评论 :),但还是一样
  • 有点不相关,但为什么要使用基于索引的循环呢?实际上你不需要索引。
  • wlcm.也包括onboardingDataOnboardingCard

标签: swift swiftui


【解决方案1】:

我只是运行你的代码。它按预期工作。


确认Identifiable 协议。

struct OnboardingItem: Identifiable {
    var id: UUID = UUID()
    let imageName: String
    let title: String
    let description: String
}

这样做可以避免使用和基于索引的循环。而是这样做:

ForEach(onboardingData) { onboardingItem in
     OnboardingCard(onboardingItem: onboardingItem)
}

【讨论】:

  • 这不是这里的问题。
  • @mahan,还没有解决,tnx 为你的努力付出了很多,但仍然没有解决问题
  • @Skysoft13 您能否将您使用过的代码/视图TabView 包含在其中?
  • @mahan,它可以在新项目中使用,但是当我与现有项目集成时会抛出此错误,在我现有的项目中,我也有其他 Yabview,我不知道是不是应该到期给它?
【解决方案2】:

当我们在项目中将另一个TabView重命名为MyTabView时,问题解决了,因为项目不接受两个名称相似的TabView。

【讨论】:

    猜你喜欢
    • 2021-01-07
    • 2021-05-15
    • 2022-01-25
    • 2017-01-31
    • 2017-05-30
    • 2012-12-26
    • 2019-07-11
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多