#list #flutter
Вопрос:
Вот что я пытаюсь сделать.
Here is my ListItems class:
class ListItems {
String? title;
String? text;
DateTime? selectedDayTime;
ListItems(
{required this.title, required this.text, required this.selectedDayTime});
}
В своем классе AddTask я пытаюсь добавить некоторые элементы в свой список. Вот мой код:
ElevatedButton(
onPressed: () {
setState(() {
itemList.add(
ListItems(
title: _titleController.text,
text: _textController.text,
selectedDayTime: _selectedDay,
),
);
Navigator.pop(context);
});
print(itemList.length);
},
child: Text("Add Task"),
),
Список элементов-это список списков. Однако каждый раз, когда я пытаюсь добавить новый элемент в свой список элементов, ItemList.length никогда не меняется. Я не знаю, почему это происходит, поэтому мне нужна помощь.
Комментарии:
1. Замените навигатор строкой печати и создайте список как список<Элементы списка>
2. @JahidulIslam это сработало. Теперь длина меняется. Однако не могу ли я использовать Navigator.pop прямо сейчас? Потому что мне нужно открыть страницу назад, чтобы увидеть элементы списка на другом экране.
3. Могу ли я сделать это в качестве ответа?
4. Да,пожалуйста. @Яхидулислам
Ответ №1:
Замените навигатор строкой печати.
ElevatedButton(
onPressed: () {
setState(() {
itemList.add(
ListItems(
title: _titleController.text,
text: _textController.text,
selectedDayTime: _selectedDay,
),
);
print(itemList.length);
//Navigator.pop(context); keep it here also
});
Navigator.pop(context);
},
child: Text("Add Task"),
),
Ответ №2:
Имеет ли какое-либо значение, включаете ли вы свою инструкцию по печати в setState
? Я не вижу никаких причин для того, чтобы ваш код не работал.
Вы также можете попробовать ввести свой itemList
тип List<ListItems>
, если вы еще этого не сделали. Я не думаю, что это вызывает какие-либо проблемы, но тщательность не помешает.
Комментарии:
1. Моя реализация списка элементов в точности такая, как вы сказали. Проблема в том, что когда я пытаюсь добавить новые объекты ListItems в список элементов, длина никогда не меняется, поэтому я не могу понять, добавил ли я уже объект или нет.