我正在使用 SwiftUI 构建 UI,并且我有一个用于构建List
元素的数组。现在我想根据@Published
来自@EnvironmentObject
.
方法一
我尝试让数组已经排序,将环境对象传递给排序方法:
List(getArraySorted(environmentObject)) { item in
//do stuff with item
}
这将编译,但如果更改列表将不会更新environmentObject
。我也尝试过,environmentObject.variableToBaseSortOn
但无济于事。
方法二
我尝试在 Swift UI 中对数组进行内联排序:
List(array.sorted(by: { (lhs, rhs) -> Bool in
// do sorting based on self.environmentObject
})) { item in
// do stuff with item
}
这将编译,但崩溃:
Fatal error: No ObservableObject of type EnvironmentObjectClass found.
A View.environmentObject(_:) for EnvironmentObjectClass may be missing as an ancestor of this view.
崩溃中的提示不正确,environmentObject
已设置并self.environmentObject
设置为正确的对象。