Обновить объект в списке - PullRequest
0 голосов
/ 12 июля 2020

Я вызываю функцию в классе, которая обновляет объект списка. Я успешно получил желаемый объект и изменил в нем значения. Как мне обновить исходный список?

Вот мой код:

void updateTask(
  Guid id, String title, String start, String end, String timeleft) {
  final taskToBeUpdated = _tasks.firstWhere((element) => element.id == id);
  taskToBeUpdated.title = title;
  taskToBeUpdated.start = start;
  taskToBeUpdated.end = end;
  taskToBeUpdated.timeLeft = timeleft;
}

Я знаю, что могу использовать forl oop для этого

for (var i = 0; i < _tasks.length; i++) {
  if (_tasks[i].id == id) {
    _tasks[i].title = title;
    _tasks[i].start = start;
    _tasks[i].end = end;
    _tasks[i].timeLeft = timeleft;
  }
}

А есть ли более короткий путь?

1 Ответ

1 голос
/ 12 июля 2020

Ваш первый код должен напрямую изменять объект в списке, поскольку dart передает его по ссылке.

Попробуйте запустить этот код, чтобы понять, как это работает:

List a = [{"dod":1}, {"dod":3}];

Map _b = a.firstWhere((e)=>e["dod"]==1);

_b["dod"] = 2;

print (a);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...