Заполните сетку результатами отображения списка

#flutter #dart

#flutter #dart

Вопрос:

Я пытаюсь заполнить сетку результатами отображения списка

   var players = [
    {"Name": "Josh", "Age": "25"},
    {"Name": "Rick", "Age": "26"},
    {"Name": "Michael", "Age": "22"},
    {"Name": "Sander", "Age": "23"},
  ];
  

Я хотел бы заполнить сетку результатами, приведенными выше, но когда я использую List.генерирую сообщение «Тип элемента ‘Список<Карта<динамический, dynamic>>’ не может быть назначен типу списка ‘Виджет’.dartlist_element_type_not_assignable
«появляется для меня.

Код, в котором я пытаюсь заполнить сетку

     GridView.count(
      crossAxisCount: 2,
      children: [
        List.generate(players.length, (index) => {
          
        })
      ],
    )
  

Есть ли какой-либо способ заполнить эту сетку?

Ответ №1:

Вы можете поступить любым способом:

1st: By using the .map() method:

  var players = [
    {"Name": "Josh", "Age": "25"},
    {"Name": "Rick", "Age": "26"},
    {"Name": "Michael", "Age": "22"},
    {"Name": "Sander", "Age": "23"},
 ];

 GridView.count(
    crossAxisCount: 2,
    children: players.map(
      (player) => Column(children: [
        Text(player['Name']),
        Text(player['Age'])
        ])).toList()
 )
  

2nd: By using the List.generate() method

 GridView.count(
    crossAxisCount: 2,
    children: List<Widget>.generate(
      players.length,
      (index) => Column(children: [
        Text(players[index]['Name']),
        Text(players[index]['Age'])
        ])
    )
)
  

Комментарии:

1. Вот и все! Спасибо 🙂