我正在尝试生成ID为0-63的8x8网格。
这是我的木板的数据:
final List<List<int>> ids = [
List.generate(8, (i) => i), // 0 - 7
List.generate(8, (i) => i + 1 + 7), // 8 - 15
List.generate(8, (i) => i + 2 + 14), // 16 - 23
List.generate(8, (i) => i + 3 + 21 ), // 24 - 31
List.generate(8, (i) => i + 4 + 28), // 32 - 39
List.generate(8, (i) => i + 5 + 35), // 40 - 47
List.generate(8, (i) => i + 6 + 42), // 48 - 55
List.generate(8, (i) => i + 7 + 49) // 56 - 63
];
这是迭代数据以创建电路板的功能:
List<Row> buildBoard() {
return ids.map((row) {
return Row(
children: row.map((id) {
return Expanded(
child: () {
/* ... omitted for readability ... */
}()
);
}).toList()
);
}).toList();
}
我没有收到任何皮棉错误,但是当我在这里运行代码时:
@override
Widget build(BuildContext context) {
return Column(
children: buildBoard()
);
}
我收到以下错误:
type 'List<int>' is not a subtype of type 'List<List<int>>' of 'function result'
我不知道为什么会这样,尝试寻找其他答案但没有成功。
我在做什么错了?
答案 0 :(得分:0)
我无法重现该问题。对我有好处
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
body: FirstPage(),
),
);
}
}
class FirstPage extends StatelessWidget {
final List<List<int>> ids = [
List.generate(8, (i) => i), // 0 - 7
List.generate(8, (i) => i + 1 + 7), // 8 - 15
List.generate(8, (i) => i + 2 + 14), // 16 - 23
List.generate(8, (i) => i + 3 + 21), // 24 - 31
List.generate(8, (i) => i + 4 + 28), // 32 - 39
List.generate(8, (i) => i + 5 + 35), // 40 - 47
List.generate(8, (i) => i + 6 + 42), // 48 - 55
List.generate(8, (i) => i + 7 + 49) // 56 - 63
];
List<Row> buildBoard() {
return ids.map((row) {
return Row(
children: row.map((id) {
return Expanded(
child: Material(
child: Text("id_$id"),
),
);
}).toList());
}).toList();
}
@override
Widget build(BuildContext context) {
return Column(
children: buildBoard()
);
}
}