SwiftUI 列表重复 children 取决于 macOS BigSur 中的开放组
SwiftUI list duplicates children depending on open groups in macOS BigSur
我遇到了 swiftui 列表没有正确显示项目的问题。
查看两张截图:
项目“Two”有 2 children:“SubitemOne”和“SubitemTwo”,当“SubitemOne”关闭时,第二个 child 复制第一级数组的最后一个元素。
如果我们打开“SubitemOne”,元素将正确呈现。
我创建了显示问题的示例项目 - https://github.com/kmalyshev/ListProblemExample。
代码如下:
import SwiftUI
struct ContentView: View {
let data = Item.getSampleData()
var body: some View {
NavigationView {
VStack {
List(data, id: \.id, children: \.children) { item in
Text(item.name)
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct Item: Codable {
let id: UUID
let name: String
let children: [Item]?
init(id: UUID = UUID(), name: String, children: [Item]? = nil) {
self.id = id
self.name = name
self.children = children
}
static func getSampleData() -> [Item] {
[
Item(name: "One"),
Item(
name: "Two",
children: [
Item(
name: "SubitemOne",
children: [
Item(name: "LastOne"),
Item(name: "LastTwo"),
]
),
Item(name: "SubitemTwo"),
]
),
Item(name: "Three"),
]
}
}
我的 macOS 版本是 11.0.1。您知道任何解决方法吗?
问题已解决。我向 Apple 报告了这个错误。
https://feedbackassistant.apple.com/feedback/8955055
他们通过一些内部更新修复了它。
我遇到了 swiftui 列表没有正确显示项目的问题。
查看两张截图:
项目“Two”有 2 children:“SubitemOne”和“SubitemTwo”,当“SubitemOne”关闭时,第二个 child 复制第一级数组的最后一个元素。
如果我们打开“SubitemOne”,元素将正确呈现。
我创建了显示问题的示例项目 - https://github.com/kmalyshev/ListProblemExample。
代码如下:
import SwiftUI
struct ContentView: View {
let data = Item.getSampleData()
var body: some View {
NavigationView {
VStack {
List(data, id: \.id, children: \.children) { item in
Text(item.name)
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct Item: Codable {
let id: UUID
let name: String
let children: [Item]?
init(id: UUID = UUID(), name: String, children: [Item]? = nil) {
self.id = id
self.name = name
self.children = children
}
static func getSampleData() -> [Item] {
[
Item(name: "One"),
Item(
name: "Two",
children: [
Item(
name: "SubitemOne",
children: [
Item(name: "LastOne"),
Item(name: "LastTwo"),
]
),
Item(name: "SubitemTwo"),
]
),
Item(name: "Three"),
]
}
}
我的 macOS 版本是 11.0.1。您知道任何解决方法吗?
问题已解决。我向 Apple 报告了这个错误。
https://feedbackassistant.apple.com/feedback/8955055
他们通过一些内部更新修复了它。