useController<T> function

ZardFieldController<T> useController<T>(
  1. String name, {
  2. T? defaultValue,
  3. bool disabled = false,
  4. 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;
}