SwiftUI ForEach 抛出索引错误

问题描述 投票:0回答:1

我似乎无法理解为什么这会引发错误? 每个循环的第一个工作正常,第二个循环抛出错误。 我需要使用数组的索引来获取代码的自定义颜色。否则我会选择普通的 ForEach。

    @ViewBuilder
    private func chartLegendView() -> some View {
        if !viewModel.topTransactions.isEmpty {
            VStack {
                ForEach(viewModel.topTransactions, id: \.self) { transaction in
                    Text(transaction.description)
                }
                ForEach(viewModel.topTransactions.indices, id: \.self) { index in
                    Text(viewModel.topTransactions[index].description)
                }
            }
        }
    }

我已经尝试了所有逻辑选项,但没有任何效果。

swiftui foreach
1个回答
0
投票

ForEach
无法处理动态数据。这确实是个坏主意,用索引替换它或迭代数组元素。

ForEach(viewModel.topTransactions, id: \.self) { transaction in
    Text(transaction.description)
}

或者

ForEach(0..<viewModel.topTransactions.count, id: \.self) { index in
    Text(viewModel.topTransactions[index].description)
}
© www.soinside.com 2019 - 2024. All rights reserved.