我正在嘗試將一個傳遞itemBuilder給另一個小部件。widget這是重現錯誤的孤立問題:
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]);
}
}
這是我嘗試使用它的方法:
final items = ["apple", "banana"];
return TestWidget<String>(
items: items,
itemBuilder: (index, item) => Container(color: Colors.green, child: Text(item)),
);
這會導致以下錯誤:
構建 TestWidget(dirty, state: _TestWidgetState#2d36b): type '(int, String) => Container' is not a subtype of type '(int, dynamic) => Widget'
我在這里想念什么?我是 Dart 和 Flutter 的新手。
uj5u.com熱心網友回復:
您缺少您所在州的泛型,請更改此行:
class _TestWidgetState<ITEM> extends State<TestWidget> {
對此:
class _TestWidgetState<ITEM> extends State<TestWidget<ITEM>> {
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/426613.html
