Список флаттерной загрузки с идентификатором

#flutter

#флаттер

Вопрос:

Привет, как я могу загрузить один из нескольких списков с одним идентификатором?

мои списки выглядят так

 List one = [
    {'name': 'USA'},
    {'name': 'Germany'},
  ];

List two = [
    {'name': 'BMW'},
    {'name': 'Audi'},
  ];
  

мне нужно загрузить один из этого списка следующим образом

  body: Column(
          children: one.map((info) {
            return Container(
              child: SizedBox(
                  children: [
                    Text(
                      info['name'],
                    ),
                  ],
                ),
              ),
            );
          }).toList(),
        ));
  

все, что я хочу, это загрузить один из двух списков в зависимости от идентификатора моей предыдущей страницы

например, был передан идентификатор 1, затем два.карта должна быть загружена

Я создал переменную на этой странице, которая также передается, я пытался использовать variable.map, но это не работает

Ответ №1:

Если у вас много списков, поместите свои списки в список. С помощью вашей переменной с предыдущей страницы вы можете вызвать правильный список из ваших данных.

 data[variable].map(info) { ....... }
  

Редактировать:

  1. Шаг

создайте список <Список> данных; их вы можете сохранить весь свой список; когда вы хотите, чтобы ваш список был «один».

 const List<List<dynamic>> data = [[{'name': 'USA'},{'name': 'Germany'},],[ {'name': 'BMW'},{'name': 'Audi'},]]; 
  
  1. Шаг

поместите его в свое дерево виджетов и вызовите нужные данные с помощью вашей переменной (x) (ЦЕЛОЕ ЧИСЛО), чтобы получить правильный список и сопоставить его, как и раньше:

 body: Column(
          children: data[x].map((info) {
            return Container(
              child: SizedBox(
                  children: [
                    Text(
                      info['name'],
                    ),
                  ],
                ),
              ),
            );
          }).toList(),
        ));
  

Если это не работает, у вас может возникнуть другая проблема в другой теме.

Том

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

1. как я помещаю свои списки в один список?

2. и если я создам эту [переменную].map, у меня будет ошибка в info [‘name’] (оператор не определен)

3. Хм, списки, отсутствующие в главном, представляют собой экран только с безстатейным виджетом, и если после этого я создам void main, появится ошибка в data [1].map((info) говорит, что данные с неопределенным именем

4. Хорошо, я понимаю, это только пример выше, конечно, вы не можете поместить метод в виджет без состояния. Можете ли вы поделиться всем кодом?

5. возможно ли перевести этот список? Я видел, что перевод выполняется через json, это сработает?

Ответ №2:

троичный оператор поможет вам

 body: Column(
          children:Your variable == 1
             ? one.map((info) {
                 return Container(
                   child: SizedBox(
                   child: Text(
                   info['name'],
                 ),
                ),
               );
              }).toList()
              : one.map((info) {
                return Container(
                 child: SizedBox(
                    child: Text(
                       info['name'],
                     ),
                    ),
                  );
                 }).toList()),
      );