useController<T> function
ZardFieldController<T>
useController<T>(
- String name, {
- T? defaultValue,
- bool disabled = false,
- ZardFormController? form,
Registers (or resolves) a ZardFieldController for name against the
nearest ZardForm. Subscribes to the field's state so the calling hook
widget rebuilds whenever the field's value/error/touched/etc. changes.
Implementation
ZardFieldController<T> useController<T>(
String name, {
T? defaultValue,
bool disabled = false,
ZardFormController? form,
}) {
final context = useContext();
final resolved = form ?? ZardFormScope.of(context);
final controller = useMemoized(
() => resolved.register<T>(name, defaultValue: defaultValue, disabled: disabled),
[resolved, name],
);
useValueListenable(controller.state);
return controller;
}