我正在嘗試在 Flutter 中使用 Text 物件形成一個容器。這些文本物件的資料來自一個串列。我對 Dart 和 Flutter 比較陌生,所以我不明白為什么我只能在 map() 方法中傳遞字串而不是映射。
child: Column(
children: tasks.map((value) => ColumnChild(value['title'])).toList()
)
上面的代碼基本有效。但是,我只想傳遞值,但是錯誤。
這是我創建物件的地方:
class ColumnChild extends StatelessWidget {
String title;
ColumnChild(this.title);
@override
Widget build(BuildContext context) {
print(title);
return Container(
width: double.infinity,
height: 50 ,
child: Column(
children: [
Text(title)
],
)
);
}
}
提前致謝!
uj5u.com熱心網友回復:
您可以回圈遍歷串列并直接使用字串,而不是使用 .map()
Column(
children: [
for(var a in tasks)
Text(a)
),
或者您使用 listView.builder
ListView.builder(
itembuilder: (context,index){
return Text(tasks[index])
},
itemCount: tasks.length
)
uj5u.com熱心網友回復:
ColumnChild要求一個名為 的字串title。如果你給它一張地圖,flutter 就會感到困惑。
想象地圖是字典,字串是單詞。您的小部件ColumnChild要求輸入一個單詞,而您卻給了它整本詞典,而沒有教它如何查找單詞。
讓我們教它如何查找單詞:
class ColumnChild extends StatelessWidget {
// you can put any name instead of data but don't forget to replace it in your code
final Map<String, dynamic> data;
const ColumnChild(this.data, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
height: 50,
child: Column(
children: [Text(data['title'] ?? 'not found')],
));
}
}
現在不是來找你要詞,而是要字典并自行查找單詞,你可以這樣做:
child: Column(
children: tasks.map((value) => ColumnChild(value)).toList()
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/398625.html
