Как добавить элементы в список? Трепетать

#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 в список элементов, длина никогда не меняется, поэтому я не могу понять, добавил ли я уже объект или нет.