#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) { ....... }
Редактировать:
- Шаг
создайте список <Список> данных; их вы можете сохранить весь свой список; когда вы хотите, чтобы ваш список был «один».
const List<List<dynamic>> data = [[{'name': 'USA'},{'name': 'Germany'},],[ {'name': 'BMW'},{'name': 'Audi'},]];
- Шаг
поместите его в свое дерево виджетов и вызовите нужные данные с помощью вашей переменной (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()),
);