我想用列更新自定义列表。
struct XyzView: View {
@ObservedObject var networkManager: NetworkManager = NetworkManager()
@State var maxrow : Int = 1
init() {
maxrow = self.maxRow()
}
func maxRow() -> Int {
let a = self.networkManager.products.count
return a
}
var body: some View {
Text("\(maxrow) Elements")
}
}
问题是在网络请求后计数没有正确更新并重新加载 View 。
DispatchQueue.main.async {
self.products = products
}
如何更新 View 并将 maxrow 设置为当前的 products.count? 感谢帮助。
最佳答案
您在 body
中使用的 maxRow
没有得到更新。
您应该将 View 直接绑定(bind)到 products
而不是尝试复制它:
{
@ObservedObject var networkManager = NetworkManager()
var maxRow: Int { networkManager.products.count }
var body: some View {
Text("\(maxRow) Elements")
}
}
关于ios - 网络请求后 SwiftUI 更新 Elements.count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997911/