我使用 ScrollView+LazyVStack+ForEach 而不是标准列表。
如何围绕这个制作包装?
struct ContentView: View {
@State private var items = ["1", "2", "3"]
var body: some View {
LazyList(data: items) { item in
}
}
}
我尝试了这段代码:
import SwiftUI
public struct LazyList<Data, ID, Content> where Data : RandomAccessCollection, ID : Hashable {
public var data: Data
public var content: (Data.Element) -> Content
var body: some View {
ScrollView {
LazyVStack(spacing: 0) {
ForEach(data, content: content)
}
}
}
Error:
Type of expression is ambiguous without more context
2021,SwiftUI 2
苹果在于wwdc20-10031
当告诉 List 是懒惰的时候。
MacOS 上的列表并不懒惰。
(iOS 不知道)
关于这个问题。你的代码是错误的。这必须有效:
public struct LazyList<Data, ID, Content> where Data : RandomAccessCollection, Data.Element: Identifiable, ID : Hashable, Content: View {
public var data: Data
public var content: (Data.Element) -> Content
var body: some View {
ScrollView {
LazyVStack(spacing: 0) {
ForEach(data, content: content)
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)