#flutter #dart
Вопрос:
Я пытаюсь сопоставить объекты с реальными виджетами, но продолжаю получать эту ошибку
type 'Listlt;Todogt;' is not a subtype of type 'Listlt;Todogt;' of 'function result' where Todo is from package:todoapp/view/main_page.dart Todo is from package:todoapp/dto/todo.dart
Элемент задач-это простой класс(todo.dart)
const Todo({required this.id, required this.name, required this.isDone}); final int id; final String name; final bool isDone; }
и вот функция отображения
Listlt;Widgetgt; getTodoListItems(Listlt;Todogt; todos) { return todos.map((todo) { return TodoListItem(todo: todo); }).toList(); }
Представление списка инициализируется следующим образом
... ListView(children: getTodoListItems(todos)) ...
Когда я перемещаю содержимое todo.dart
в файл с помощью виджета, все работает нормально, но это не совсем подходящее решение для меня, потому что этот класс является общим для разных виджетов.
Может кто-нибудь, пожалуйста, объяснить мне, что здесь происходит? По-видимому, это тот же объект, следовательно, того же типа, или, по крайней мере, так выглядит
Правка: Есть много вопросов, похожих на этот, но они имеют разные типы, что, по крайней мере, имеет смысл
Комментарии:
1. похоже, что в вашем приложении есть два класса задач, и у вас возникают конфликты имен с ними
2. Это то, что я подумал сначала. Но Нет. Это единственный класс задач в проекте
3. даже нет виджета без состояния с сохранением состояния под названием todo inside view/main_page? если так, то я ничего не понимаю, извините
4. Ну, он используется в разных виджетах(как с полным состоянием, так и без состояния), но сам класс объявлен в отдельном файле
Ответ №1:
Ладно, это было глупо, но, похоже, флаттер что-то спрятал. Перезапуск проекта и переустановка приложения помогли