如何解决将单元格动态添加到 SwiftUI LazyGrid
如何在 SwiftUI 中向某些 LazyVGrid 动态添加单元格(而不是列)? 以下代码应通过单击按钮添加 1 个单元格。它编译但不起作用。 我错过了什么?
import SwiftUI
struct GridContent: Identifiable {
var id = UUID()
}
struct ContentView: View {
@State var counter = [ GridContent() ]
var gridLayout = [ GridItem() ]
var body: some View {
LazyVGrid(columns: gridLayout) {
ForEach(counter.indices) { item in
Text("\(item)")
}
Button(action: {
counter.append(GridContent())
}) {
Image(systemName: "plus.circle.fill")
}
}
}
}
解决方法
在这种情况下,您应该使用 ForEach
的动态变体,例如
var body: some View {
LazyVGrid(columns: gridLayout) {
ForEach(counter.indices,id: \.self) { item in // << here !!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。