当列表为空时,SwiftUI是否不执行onInsert?

当列表为空时,SwiftUI是否不执行onInsert?,swift,swiftui,Swift,Swiftui,我在UI上有2个列表,1个列表允许用户拖动到另一个列表。我有问题,当 “所选产品列表”为空。它不执行.onInsert函数 当数组“selectedProduct”在渲染时不为空时,它没有问题。 当另一个列表完全为空时,如何允许用户拖放 List(selection: $selection) { HStack(alignment: .center) { Spacer().frame(width: 200) Text("Product Name")

我在UI上有2个列表,1个列表允许用户拖动到另一个列表。我有问题,当 “所选产品列表”为空。它不执行.onInsert函数

当数组“selectedProduct”在渲染时不为空时,它没有问题。
当另一个列表完全为空时,如何允许用户拖放

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
为您工作。

我建议您在此处复制可复制的代码,以便我们可以尝试…仅使用一个列表,我们无法复制您的错误。