当列表为空时,SwiftUI是否不执行onInsert?
我在UI上有2个列表,1个列表允许用户拖动到另一个列表。我有问题,当 “所选产品列表”为空。它不执行.onInsert函数 当数组“selectedProduct”在渲染时不为空时,它没有问题。当列表为空时,SwiftUI是否不执行onInsert?,swift,swiftui,Swift,Swiftui,我在UI上有2个列表,1个列表允许用户拖动到另一个列表。我有问题,当 “所选产品列表”为空。它不执行.onInsert函数 当数组“selectedProduct”在渲染时不为空时,它没有问题。 当另一个列表完全为空时,如何允许用户拖放 List(selection: $selection) { HStack(alignment: .center) { Spacer().frame(width: 200) Text("Product Name")
当另一个列表完全为空时,如何允许用户拖放
List(selection: $selection)
{
HStack(alignment: .center)
{
Spacer().frame(width: 200)
Text("Product Name")
.foregroundColor(blue)
.lineLimit(1)
Spacer()
Text("Price")
.foregroundColor(blue)
Spacer()
Text("Unit")
.foregroundColor(blue)
Spacer()
}
ForEach(selectedProduct, id:\.id)
{
rider in
SelectedProductView()
}
.onInsert(of: ["public.data"])
{
self.addProduct(position: $0, itemProviders: $1, top: true)
}
}
.onInsert
可用于动态查看内容
,因此当您的所选产品
为空时,没有内容,因此无处插入
我认为有两种可能性可以解决这种情况:
1) 实施对下拉列表的支持,并在selectedProduct
为空时将其激活,以允许添加动态内容中的第一个元素
2) 实现存根产品项(例如,显示“drop here”文本的空行),当它变为空的真实产品时,会显式添加到selectedProduct
,因此,使内容不为空以允许标准.onInsert
为您工作。我建议您在此处复制可复制的代码,以便我们可以尝试…仅使用一个列表,我们无法复制您的错误。