'"itemBuilder -> Container" is not subtype of "itemBuilder -> Widget"
I am trying to pass an itemBuilder to another widget. Here's the isolated problematic widget to reproduce the error:
class TestWidget<ITEM> extends StatefulWidget {
final List<ITEM> items;
final Widget Function(int index, ITEM item) itemBuilder;
const TestWidget({
Key? key,
required this.items,
required this.itemBuilder,
}) : super(key: key);
@override
_TestWidgetState createState() => _TestWidgetState<ITEM>();
}
class _TestWidgetState<ITEM> extends State<TestWidget> {
// -
@override
Widget build(BuildContext context) {
return widget.itemBuilder(0, widget.items[0]);
}
}
Here's how I try to use it:
final items = ["apple", "banana"];
return TestWidget<String>(
items: items,
itemBuilder: (index, item) => Container(color: Colors.green, child: Text(item)),
);
This results in following error:
The following _TypeError was thrown building TestWidget(dirty, state: _TestWidgetState#2d36b): type '(int, String) => Container' is not a subtype of type '(int, dynamic) => Widget'
What am I missing here? I am new to Dart and Flutter.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
