#flutter #dart
#трепетание #дротик
Вопрос:
У меня есть массив строк: var choices = [‘a’, ‘b’, ‘c’];
Я хочу создать текстовый виджет, перебирая каждую строку. Я считаю, что обычный способ сделать это — использовать map
Column(
children: choices.map((item) {
return Text(item);
}).toList()
)
Однако я получаю, что тип элемента «Список» не может быть присвоен типу списка «Виджет». исключение. Карта больше не работает?
Ответ №1:
Ваш код правильный и работает так, как ожидалось. Я скопировал ваш код на dartpad.dev следующим образом :
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
final List<String> choices = ["one", "two", "three", "four"];
@override
Widget build(BuildContext context) {
return Column(
children: choices.map((item) {
return Text(item);
}).toList());
}
}