Flutter error: The argument type 'List<dynamic>?' can't be assigned to the parameter type 'List<dynamic>'
Flutter error: The argument type 'List<dynamic>?' can't be assigned to the parameter type 'List<dynamic>'
我一直在尝试将 List<dynamic>
传递给接收 List<dynamic>
作为参数的 class,但出现以下错误:
The argument type 'List<dynamic>?' can't be assigned to the parameter type 'List<dynamic>'.
这是两个 classes 的代码:
Widget _lista() {
return FutureBuilder(
future: menuProvider.cargarData(),
initialData: [],
builder: (context, AsyncSnapshot<List<dynamic>> snapshot) {
return ListView(
children: _listaItems(snapshot.data),
);
},
);
}
我在 snapshot.data
段代码中遇到错误:
_listaItems(snapshot.data)
这里是 class 接收数据:
List<Widget> _listaItems(List<dynamic> data) {
final List<Widget> opciones = [];
data.forEach((opt) {
final widgetTemp = ListTile(
title: Text(opt['texto']),
leading: Icon(Icons.account_circle, color: Colors.blue),
trailing: Icon(
Icons.keyboard_arrow_right,
color: Colors.blue,
),
onTap: () {},
);
opciones..add(widgetTemp)..add(Divider());
});
return opciones;
}
我没有找到任何关于如何解决这个问题的信息,而且我不明白这个错误的根源,因为这两种数据类型是相同的。有解决此问题的建议吗?
试试看
_listaItems(snapshot.data!)
你应该这样做,而不是直接使用!运算符。
Widget _lista() {
return FutureBuilder(
future: menuProvider.cargarData(),
initialData: [],
builder: (context, AsyncSnapshot<List<dynamic>> snapshot) {
return ListView(
children: snapshot.data != null
? _listaItems(snapshot.data)
: CircularProgressIndicator(),
);
},
);
}
我一直在尝试将 List<dynamic>
传递给接收 List<dynamic>
作为参数的 class,但出现以下错误:
The argument type 'List<dynamic>?' can't be assigned to the parameter type 'List<dynamic>'.
这是两个 classes 的代码:
Widget _lista() {
return FutureBuilder(
future: menuProvider.cargarData(),
initialData: [],
builder: (context, AsyncSnapshot<List<dynamic>> snapshot) {
return ListView(
children: _listaItems(snapshot.data),
);
},
);
}
我在 snapshot.data
段代码中遇到错误:
_listaItems(snapshot.data)
这里是 class 接收数据:
List<Widget> _listaItems(List<dynamic> data) {
final List<Widget> opciones = [];
data.forEach((opt) {
final widgetTemp = ListTile(
title: Text(opt['texto']),
leading: Icon(Icons.account_circle, color: Colors.blue),
trailing: Icon(
Icons.keyboard_arrow_right,
color: Colors.blue,
),
onTap: () {},
);
opciones..add(widgetTemp)..add(Divider());
});
return opciones;
}
我没有找到任何关于如何解决这个问题的信息,而且我不明白这个错误的根源,因为这两种数据类型是相同的。有解决此问题的建议吗?
试试看
_listaItems(snapshot.data!)
你应该这样做,而不是直接使用!运算符。
Widget _lista() {
return FutureBuilder(
future: menuProvider.cargarData(),
initialData: [],
builder: (context, AsyncSnapshot<List<dynamic>> snapshot) {
return ListView(
children: snapshot.data != null
? _listaItems(snapshot.data)
: CircularProgressIndicator(),
);
},
);
}