$condFor<TValue> method

Widget $condFor<TValue>(
  1. Object propertyKey, {
  2. ValueWidgetBuilder<TValue>? $true,
  3. ValueWidgetBuilder<TValue>? $false,
  4. Widget? child,
  5. bool valueHandle(
    1. TValue
    )?,
  6. TValue? initialValue,
})

绑定到指定属性, 当 propertyKey 对应属性值发生变化时, 若值判定结果为 true 则使用 $true 构建 Widget, 否则使用 $false 构建 Widget

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

// example
@override
Widget build(BuildContext context) {
  return $condFor<String>(#account,
    $true: (context, value, child) => Text("tom!"),
    $false: (context, value, child) => Text("jerry!"),
    valueHandle: (value) => value == "tom");
}

Implementation

Widget $condFor<TValue>(Object propertyKey,
        {ValueWidgetBuilder<TValue>? $true,
        ValueWidgetBuilder<TValue>? $false,
        Widget? child,
        bool Function(TValue)? valueHandle,
        TValue? initialValue}) =>
    $cond<TValue>(
        ensureProperty<TValue>(propertyKey, initialValue: initialValue),
        $true: $true,
        $false: $false,
        child: child,
        valueHandle: valueHandle);