driverProvidableProperty top-level constant

_DriverProvidableProperty const driverProvidableProperty

Use this annotation on constructor params, which should be able to be passed from the DrivableWidget to the Driver. This is intended for model data and not repositories or other service/use-case types of objects.

Here is an example on how to use the Annotation

@GenerateTestDriver()
class CoffeeDetailPageDriver extends WidgetDriver {
  final Coffee _coffee;

  CoffeeDetailPageDriver(
    BuildContext context, {
    @driverProvidableProperty required Coffee coffee,
  })  : _coffee = coffee,
        super(context);

  // ...
}

This will generate the following DriverProvider

class $CoffeeDetailPageDriverProvider extends WidgetDriverProvider<CoffeeDetailPageDriver> {
  final Coffee _coffee;

  $CoffeeDetailPageDriverProvider({
    required Coffee coffee,
  }) : _coffee = coffee;

  @override
  CoffeeDetailPageDriver buildDriver(BuildContext context) {
    return CoffeeDetailPageDriver(
      context,
      coffee: _coffee,
    );
  }

  @override
  CoffeeDetailPageDriver buildTestDriver() {
    return _$TestCoffeeDetailPageDriver();
  }
}

And can be used in the widget like this.

class CoffeeDetailPage extends DrivableWidget<CoffeeDetailPageDriver> {
  final Coffee coffee;

  CoffeeDetailPage({Key? key, required this.coffee}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // ...
    );
  }

  @override
  WidgetDriverProvider<CoffeeDetailPageDriver> get driverProvider => $CoffeeDetailPageDriverProvider(coffee: coffee);
}

Implementation

const driverProvidableProperty = _DriverProvidableProperty();