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

row number in ForEach using another view for row item

假设我有一个包含 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?因为现在我收到一个错误:使用未解析的标识符 'number'

您只需要在 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)")
    }
}