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();