Flutter - 泛型函数typedef errror

时间:2018-05-10 04:09:54

标签: dart flutter

我正在按照教程building-a-social-network-with-flutter编写一个基于loadmore listview的基础loadmore listview:

  • 将typedef函数定义为listview适配器,它返回每个项目的小部件:

    typedef Widget WidgetAdapter<T>(T t);
    
  • 我的基本列表视图小部件:

    class LoadingListView<T> extends StatefulWidget{
    
      ...
    
      final WidgetAdapter<T> widgetAdapter;
    
      ...
    
      @override createState() => new _LoadingListViewState();
    
    }
    
  • 我的基本列表视图状态:

    class _LoadingListViewState<T> extends State<LoadingListView<T>> {
    
      ...
    
      List<T> objects = [];
    
      ...
    
      Widget itemBuilder(BuildContext context, int index) {
    
        return widget.widgetAdapter != null ? widget.widgetAdapter(objects[index]);
            : new Container();
      }
    
    }
    
  • 在我的UserList小部件中:

    @override
    Widget build(BuildContext context) {
    Widget w;
    w = new LoadingListView<User>(
        request, widgetAdapter: adapt, pageSize: widget.pageSize, pageThreshold: widget.pageThreshold);
    return w;
    }
    
    Widget adapt(User user){
    return new UserItem(user); //return widget UserItem
    }
    

    我收到错误:

    type '(User) => Widget' is not a subtype of type '(dynamic) => Widget'
    

如何修复它。请帮我。非常感谢你。

1 个答案:

答案 0 :(得分:2)

StatefullWidget类中的createState()方法存在问题。

像这样更新你的createState()方法。

@override  
State createState() => new _LoadingListViewState<T>()