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(),
        );
      },
    );
  }