我似乎无法理解为什么这会引发错误? 每个循环的第一个工作正常,第二个循环抛出错误。 我需要使用数组的索引来获取代码的自定义颜色。否则我会选择普通的 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)
}
}
}
}
我已经尝试了所有逻辑选项,但没有任何效果。
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)
}