SuperAPI AI 工具集

reactor-forms

前端与建站

查看项目

更新于 10-16 00:31

技能介绍

用途:在 Reactor 中构建表单并做验证。表单采用受控输入模式,每个输入都有显式的 (value, setter) 对,由 UseState 驱动,没有双向绑定;验证通过 UseValidationContext 和声明式 .Validate() 修饰符叠加。

主要能力:输入工厂包括 TextBox、PasswordBox、NumberBox、Slider、ToggleSwitch、CheckBox、RadioButtons、ComboBox、DatePicker、TimePicker、AutoSuggestBox、RichEditBox、CalendarDatePicker 等,各自带常用修饰符。内置验证器有 Validate.Required、MinLength、MaxLength、Email、Match、Range、Must、EqualTo、Url、MustBeTrue。FormField 可为输入包裹标签、必填标记、描述与错误显示,ShowWhen 控制错误显示时机(WhenTouched、Always、WhenDirty、AfterFirstSubmit、Never)。MaskEngine 按预设或自定义掩码限制输入(PhoneUS、SSN、ZipCode、CreditCard、Date 等);InputFormatter 做输入时格式化(Currency、PhoneUS、UpperCase、LowerCase、TitleCase、MaxLength、AllowOnly)。

使用方式:用 UseState 保存字段值,输入控件传入 (value, setter);用 this.UseValidationContext() 获取上下文,在输入上调用 .Validate("字段名", 当前值, 验证器...),提交时先 validation.MarkAllTouched() 再判断 validation.IsValid()。上下文会自动发布到渲染子树,无需显式 Provide。

限制与注意:必须使用受控输入;提交前需 MarkAllTouched 才能显示错误;掩码限制可输入字符,格式化器只改变显示;同一表单不要混用简单派生布尔验证与 UseValidationContext;使用 FormField 时不要手写错误提示。底层元素属性使用 Optional<T>,读取用 .Value / .GetValueOrDefault(...)。