Flutterforループでリストを表示する方法
Dec 01 2020
forループで表示する簡単なリストを作成しました。
List categories = [
{
{
'CatID': '0',
'CatName': 'All'
},
{
'CatID': '1',
'CatName': 'Computer Hardware'
},
{
'CatID': '2',
'CatName': 'Computer Software'
},
}
];
次に、このようなウィジェットを定義します
List<Widget> CatWidget = List<Widget>();
それから私はそれをこのように使います
for (int i = 0; i < 8; i++) {
CatWidget.add(
Container(
child: Text(categories[i]['CatName']),
),
);
}
その表示エラー Class '_CompactLinkedHashSet<Map<String, String>>' has no instance method '[]'.
回答
3 nvoigt Dec 01 2020 at 15:51
リストに含まれている中括弧が多すぎます。
List categories = [
{
'CatID': '0',
'CatName': 'All'
},
{
'CatID': '1',
'CatName': 'Computer Hardware'
},
{
'CatID': '2',
'CatName': 'Computer Software'
},
];
また、ループは8がないため、8ではなく3まで実行する必要があります。
したがって、以下は機能しますが、一般的により良いアプローチについては、他の回答を確認することをお勧めします。
import 'package:flutter/material.dart';
void main() {
List categories = [
{
'CatID': '0',
'CatName': 'All'
},
{
'CatID': '1',
'CatName': 'Computer Hardware'
},
{
'CatID': '2',
'CatName': 'Computer Software'
},
];
final catWidget = List<Widget>();
for (int i = 0; i < 3; i++) {
catWidget.add(
Container(
child: Text(categories[i]['CatName']),
),
);
}
runApp(MyApp(catWidget));
}
class MyApp extends StatelessWidget {
final List<Widget> children;
const MyApp(this.children);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(children: children),
),
);
}
}
3 UsmanAkhlaq Dec 01 2020 at 15:43
list.generateを使用して、リストをループし、ウィジェットを返すことができます。
Column(
children: List.generate(
tags.length,
(index) => Container(
// margin: EdgeInsets.symmetric(),
child: NativeButton(
borderRadius: BorderRadius.circular(4),
padding: EdgeInsets.symmetric(
vertical: sizeConfig.height(.01),
horizontal: sizeConfig.width(.02),
),
color: Colors.grey[200],
child: Text(tags[index]),
),
),
),
),
RohitSingh Dec 01 2020 at 16:03
JSON配列があり、JSON配列内にJSONオブジェクトがあり、そのJSONオブジェクト内に複数のJSONオブジェクトがあり、それらを1つずつ反復する必要があります。これは不適切です。
JSON配列> JSONオブジェクトTrue
JSON配列> JSON配列> JSONオブジェクトTrue
JSON配列> JSONオブジェクト> JSONオブジェクトFalse
forループは、オブジェクトの配列またはリストでのみ機能し、jsonは次のようになります。
[
{
'CatID': '0',
'CatName': 'All'
},
{
'CatID': '1',
'CatName': 'Computer Hardware'
},
{
'CatID': '2',
'CatName': 'Computer Software'
},
]