Flutter - универсальная функция typedef errror - PullRequest
0 голосов
/ 10 мая 2018

Я пишу базовый список загрузки в флаттере после урока building-a-social-network-with-flutter :

  • Определите функцию typedef как адаптер списка, он возвращает виджет для каждого элемента:

    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 голосов
/ 10 мая 2018

Проблема с методом createState () в вашем классе StatefullWidget.

Обновите ваш метод createState () следующим образом.

@override  
State createState() => new _LoadingListViewState<T>()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...