小编Giu*_*nzo的帖子

如何将验证传播到 CustomField 子组件

我有一个简单的 CustomComponent,其中 Person 是一个简单的数据类,有两个字符串 TextField:name 和 sname。

这是班级:

data class Person(var name:String, var birth:LocalDate)

class PersonField : CustomField<Person>(){

    private val nameField:TextField
    private val birthField:DatePicker

    init {
        nameField = TextField().apply {
            placeholder = "Name"

            addValueChangeListener{updateValue()}
        }

        birthField = DatePicker().apply {
            placeholder = "Birth"

            addValueChangeListener{updateValue()}
        }

        add(nameField, birthField)
        setWidthFull()
    }

    override fun setPresentationValue(person: Person?) {
        if (person != null) {
            nameField?.value = person.name
            birthField?.value = person.birth
        }
    }

    override fun generateModelValue(): Person {
        return Person(nameField.value, birthField.value)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我使用两个验证器的活页夹:

binder.forField(personField)
            .withValidator({ value …
Run Code Online (Sandbox Code Playgroud)

vaadin vaadin-flow vaadin23

3
推荐指数
1
解决办法
188
查看次数

标签 统计

vaadin ×1

vaadin-flow ×1

vaadin23 ×1