$if<TValue> method

Widget $if<TValue>(
  1. ValueListenable<TValue> valueListenable, {
  2. required ValueWidgetBuilder<TValue> builder,
  3. Widget? child,
  4. bool valueHandle(
    1. TValue
    )?,
})

绑定到指定 ValueListenable, 当 valueListenable 值发生变化时, 若值判定结果为 true 则使用 builder 构建 Widget, 否则不构建 Widget

当值类型不为 bool 时, 非 null 即被判定为 true, 否则为 false 可通过指定 valueHandle 对值进行处理 child 用于向构建方法中传入 Widget

// example
final bp1$ = BindableProperty.$value(initial: 1);
@override
Widget build(BuildContext context) {
  return $if<int>(bp1$,
    builder: (context, value, child) => Text("tom!"),
    valueHandle: (value) => value == 1);
}

Implementation

Widget $if<TValue>(ValueListenable<TValue> valueListenable,
        {required ValueWidgetBuilder<TValue> builder,
        Widget? child,
        bool Function(TValue)? valueHandle}) =>
    $cond(valueListenable,
        $true: builder, child: child, valueHandle: valueHandle);