ForEach中的行号,对行项目使用另一个视图

时间:2019-11-22 02:45:26

标签: swiftui swiftui-list

假设我有一个包含ForEach和编号行的简单列表。像这样:

import SwiftUI

struct test: View {
    var body: some View {
        List {
            ForEach(0 ..< 100) { number in
                Text("Row \(number)")
            }
        }
    }
}

如果我要将行提取到另一个视图怎么办?

struct ExtractedView: View {
    var body: some View {
        Text("Row \(number)")
    }
}

在原始列表中更改

Text("Row \(number)") 

成为:

ExtractedView()

如何立即进行编号行?如何将数字传递给ExtractedView?因为现在我遇到一个错误:使用未解决的标识符“数字”

1 个答案:

答案 0 :(得分:1)

您只需要在ExtractedView中创建一个变量并将此数字传递给它:

struct test: View {
    var body: some View {
        List {
            ForEach(0 ..< 100) { number in
                ExtractedView(number: number)
            }
        }
    }
}

struct ExtractedView: View {
    let number: Int
    var body: some View {
        Text("Row \(number)")
    }
}