提问者:小点点

无法将节点从一个状态树移动到另一个状态树 - Spring 错误


我做了一个简单的Vaadin Web Programm来实现Spring Framework。当我刷新页面时,我一直收到错误:

我的代码:主视图

@Route(value = "test")
public class MainView extends VerticalLayout {
    private final Button button;
    private final TextField textField;
    public MainView (Button button, TextField textField) {
        this.button = button;
        this.textField = textField;
        doSomething();
    }

    public void doSomething() {
        if(button!=null && textField!=null) {
            add(button);
            add(new Paragraph(textField));
        }
        else Notification.show("Error");
    }
}

应用配置

@Configuration
public class AppConfig {
    @Bean
    public Button returnNewButton() {
        Button b = new Button();
        b.getStyle().set("height", "50px").set("width", "150px");
        b.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
        return b;
    }

    @Bean
    public TextField returnNewTextField() {
        return new TextField("Input");
    }
}

已经尝试使用不同的@Scope类型,但仍然不起作用。

我是Spring的新手,我在依赖项注入方面做错了什么?谢谢


共1个答案

匿名用户

一般来说,您不应该注入UI组件,您应该在视图中创建它们。在您的例子中,您正在创建一个在所有视图中重用的单例按钮。这不起作用,因为组件实例只能在一个地方使用。