Конвертировать список карт в степпер? - PullRequest
0 голосов
/ 26 апреля 2019

Я создаю простое приложение со списком задач, используя флаттер.Я хотел бы создать виджет Stepper из списка карт следующим образом.

[
      { 
        'task': 'Cook for 5 min',
        'content': '30',
      },
      {
        'task': 'Stir gently',
        'content': '20',
      },
]

В настоящее время я делаю это в своей функции построителя:

List<Step> todoSteps = args['todos'].map<Step>((todo) {
      return Step(
        title: Text(todo['task']),
        content: Text(todo['content']),
        isActive: _currentStep >= i, // this is the issue
      );
    }).toList();

Затем я перехожу к установке параметра steps виджета Stepper с помощью todoSteps.

Thisв основном работает нормально, за исключением параметра isActive, где я должен проверить, меньше ли _currentStep, чем index (i).Но проблема в том, что я не могу получить индекс в функции.

Я попытался использовать функцию asMap () в списке, а затем прочитать индекс, но это всегда приводит к ошибке.

1 Ответ

0 голосов
/ 26 апреля 2019

.asMap().entries должен предоставить то, что вам нужно:

List<Step> todoSteps = args['todos'].asMap().entries.map<Step>((e) {
    var i = e.key;
    var todo = e.value;
    return Step(
      title: Text(todo['task']),
      content: Text(todo['content']),
      isActive: _currentStep >= i, // this is the issue
    );
  }).toList();
...