#dart #flutter
#dart #flutter
Вопрос:
Я создаю список карт, у каждой карты есть два ключа ["title"]
и ["time"]
, все значения ключей передаются в setState
методе, причем значения передаются в виде строк с помощью кнопки, и объект карты добавляется внутри списка, вот List _tasks = []
что я хотел бы сделать, так это получить доступ к элементу [«time»] последней карты, добавленной в список, и иметь возможность изменять значение.
Это часть небольшого проекта приложения, чтобы помочь мне узнать больше о Flutter. Репозиторий приложения находится на Github на https://github.com/jsdaniell/remindme
Список объявлен:
List _tasks = [];
Функция, которая добавляет объект карты в список:
void _addTask() {
setState(
() {
Map<String, dynamic> newTask = Map();
newTask["title"] = _taskController.text;
newTask["time"] = _timeGlobal.toString();
_taskController.text = "";
_tasks.add(newTask);
},
);
}
Дело в том, что я хочу каждую секунду вычитать значение 1 из переменной _timeGlobal, что является int в глобальной области видимости и является значением, которое задается в виде строки в ["time"]
на карте, поэтому я пишу этот код:
String countdownTime(Map newTask) {
Timer timer = new Timer.periodic(new Duration(seconds: 1), (timer) {
// Here I want to access the value of ["time"] element, where's in the last position of list and update the value.
_saveData();
return Home();
});
// Stop the periodic timer using another timer which runs only once after specified duration
new Timer(new Duration(minutes: _timeGlobal), () {
timer.cancel();
});
}
Я надеюсь, что у вас есть какой-то способ получить доступ к последней карте в списке карт и конкретному ключу на этой карте.
Ответ №1:
для доступа к последнему элементу в списке вы можете использовать: _tasks[_tasks.length - 1];
поэтому, если вам нужен ключ «time» с карты, которая находится внутри последнего элемента вашего списка, используйте : var lastTime = _tasks[_tasks.length - 1]["time"];