Flutter 如何使用 Lists 创建类似的 widget white implicit-case 和 implicity-dynamic 设置为 false
Flutter how to use Lists to create similar widgets white implicit-case and implicity-dynamic set to false
我正在努力更好地输入 flutter/dart。为了强制执行此操作,我制作了一个 analysis_options.yaml:
analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
效果很好,但我很难使用如下代码:
Widget build(BuildContext context) {
return Column(
children: [...widgetList()]);
}
widgetList(){
List<Map<String,dynamic>> defineWidgets = [
{"text":"beer", "color": Colors.blue}, // <-- Missing type arguments for map literal. Try adding an explicit type like 'dynamic' or enable implicit dynamic in your analysis options.
{"text":"wine", "color": Colors.red},
];
List<Widget> finalWidgets =[];
for(int i = 0; i < defineWidgets.length; i++ ){
finalWidgets.add(
Expanded(child:Container(
child:Text(defineWidgets[i]['text']), // <-- the argument type 'dynamic' can't be assigned to the parameter type 'String'
color:defineWidgets[i]['color']
))
);
}
return finalWidgets;
}
我尝试使用 cast() 无济于事。
有没有办法在不将 implicit-casts 和 implicit-dynamic 设置为 true 的情况下执行此功能?
错误“缺少地图文字的类型参数。尝试添加显式类型,例如 'dynamic' 或在您的分析选项中启用隐式动态。”似乎要求您在 defineWidgets
的每个地图条目上投射 <String,dynamic>
。尽管您提供的代码似乎在 DartPad 上运行良好。声明可能看起来类似于。
List<Map<String,dynamic>> pricing = [
<String, dynamic>{"name":"beer", "price": 5},
<String, dynamic>{"name":"wine", "price": 10},
];
for(Map<String,dynamic> product in pricing){
print('${product['name']} Price: ${product['price']}');
}
至于Text(defineWidgets[i]['text'])
,Widget只能处理String值。但是由于我们从 Map<String, dynamic>
获取动态值,我们需要将该值转换为字符串,以便 Widget 知道该值确实是一个字符串。
`Text(defineWidgets[i]['text'] as String)`
我正在努力更好地输入 flutter/dart。为了强制执行此操作,我制作了一个 analysis_options.yaml:
analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
效果很好,但我很难使用如下代码:
Widget build(BuildContext context) {
return Column(
children: [...widgetList()]);
}
widgetList(){
List<Map<String,dynamic>> defineWidgets = [
{"text":"beer", "color": Colors.blue}, // <-- Missing type arguments for map literal. Try adding an explicit type like 'dynamic' or enable implicit dynamic in your analysis options.
{"text":"wine", "color": Colors.red},
];
List<Widget> finalWidgets =[];
for(int i = 0; i < defineWidgets.length; i++ ){
finalWidgets.add(
Expanded(child:Container(
child:Text(defineWidgets[i]['text']), // <-- the argument type 'dynamic' can't be assigned to the parameter type 'String'
color:defineWidgets[i]['color']
))
);
}
return finalWidgets;
}
我尝试使用 cast() 无济于事。 有没有办法在不将 implicit-casts 和 implicit-dynamic 设置为 true 的情况下执行此功能?
错误“缺少地图文字的类型参数。尝试添加显式类型,例如 'dynamic' 或在您的分析选项中启用隐式动态。”似乎要求您在 defineWidgets
的每个地图条目上投射 <String,dynamic>
。尽管您提供的代码似乎在 DartPad 上运行良好。声明可能看起来类似于。
List<Map<String,dynamic>> pricing = [
<String, dynamic>{"name":"beer", "price": 5},
<String, dynamic>{"name":"wine", "price": 10},
];
for(Map<String,dynamic> product in pricing){
print('${product['name']} Price: ${product['price']}');
}
至于Text(defineWidgets[i]['text'])
,Widget只能处理String值。但是由于我们从 Map<String, dynamic>
获取动态值,我们需要将该值转换为字符串,以便 Widget 知道该值确实是一个字符串。
`Text(defineWidgets[i]['text'] as String)`