你可以在上传中使用 vaadin 按钮吗?

Can you use a vaadin-button in upload?

所有上传示例均显示在以编程方式创建上传时使用 NativeButton。我想使用属于 Designer 布局的按钮 (vaadin-button)。当我尝试这样做时,我看到以下错误:

Caused by: java.lang.IllegalArgumentException: Trying to detach an element from parent that does not have it.
    at com.vaadin.flow.dom.impl.AbstractNodeStateProvider.removeChild(AbstractNodeStateProvider.java:123)
    at com.vaadin.flow.dom.Node.removeChild(Node.java:376)
    at com.vaadin.flow.dom.Element.removeFromParent(Element.java:577)
    at com.vaadin.flow.dom.Node.insertChild(Node.java:293)
    at com.vaadin.flow.dom.Node.appendChild(Node.java:141)
    at com.vaadin.flow.component.upload.GeneratedVaadinUpload.addToAddButton(GeneratedVaadinUpload.java:1344)
    at com.vaadin.flow.component.upload.Upload.setUploadButton(Upload.java:276)

我们在 CDI 模式下使用 Vaadin 14。

要用设计器更改上传按钮,需要将按钮拖到层次结构中的上传中,然后添加 slot="add-button" 属性。

您的模板最终应如下所示:

<vaadin-upload>
 <vaadin-button slot="add-button">
   Button 
 </vaadin-button>
</vaadin-upload>

请注意,您必须在层次结构面板中执行此操作。

如果这没有帮助(也许您已经这样做了),您能否包含一些代码来说明您正在尝试做什么?

我刚刚在我们的 Designer 存储库中为此改进创建了一个问题 https://github.com/vaadin/designer/issues/2399

随时发表评论。