从 ForEach 中引用变量时,SwiftUI“无法推断通用参数'数据'”

Posted

技术标签:

【中文标题】从 ForEach 中引用变量时,SwiftUI“无法推断通用参数\'数据\'”【英文标题】:SwiftUI "Generic parameter 'Data' could not be inferred" when referencing variables from within ForEach从 ForEach 中引用变量时,SwiftUI“无法推断通用参数'数据'” 【发布时间】:2019-11-17 21:52:02 【问题描述】:

因此,由于某种原因,当我尝试在 ForEach 中引用变量时,它给了我以下错误:无法推断通用参数“数据”,明确指定通用参数来解决此问题”

我真的不知道为什么会抛出错误,这对我来说似乎很简单,但我卡住了

    struct OptionsScrollView: View 

    @State var scrollOptions = [
        "test1",
        "test2",
        "test3"
    ]
    @State var optionHeight = 50

var body: some View 
    GeometryReaderouterGeo in

        ScrollView

            VStack
                ForEach(self.scrollOptions.indices) i in

                    GeometryReader optionGeo in

                        Text( self.scrollOptions[i] )

                     // end optionGeo
                        .frame(width: 100, height: self.optionHeight)
                        //                         ^^^^^^^^^^^^^^^^^
                        //                         adding this gives me the error

                 // end ForEach

             // end VStack

         // end ScrollView

     // end outerGeo
    


【问题讨论】:

【参考方案1】:

删除我的 ScrollView 上方的 GeometryReader 解决了我的问题,不知道为什么!

【讨论】:

【参考方案2】:

更正:@State var optionHeight : CGFloat = 50

-> 编译器假设 optionHeight 是一个 Int,如果你不告诉他 ;)

【讨论】:

以上是关于从 ForEach 中引用变量时,SwiftUI“无法推断通用参数'数据'”的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI Nested ForEach 导致意外排序

在绑定调用中使用 SwiftUI ForEach 的迭代器变量

SwiftUI 中对成员“索引”的错误引用不明确

SwiftUI ForEach 理解变量用法

如何在 ForEach 循环中获取计数变量

从 SwiftUI 中的列表中删除绑定