isEmpty被调用为null

问题描述 投票:0回答:2

我是新来的人。

我想从API获取数据并处理是否为空

所以这是我的代码

setState(() {
  var content = json.decode(res.body);
  data = content['results'];
});


data.isEmpty ? Column(children: <Widget>[
      Text(
        'your inbox is empty',
        style: TextStyle(fontSize: 10.0, color: Colors.blueGrey),
      )
    ],): ListView.builder(
      itemCount: data == null ? 0 : data.length,
      itemBuilder: (BuildContext context, int index) {
        return ListTile(
          title: Text(
            data[index]['body'],
            style: TextStyle(fontSize: 15.0, fontWeight: FontWeight.bold),
          )
        );
      },
    )

但抛出错误

The getter 'isEmpty' was called on null

如何解决?

flutter dart
2个回答
0
投票

数据变量为null。您可以像这样检查它:

data?.isEmpty != false ? [empty] : [not empty]

因此,当data为null或data.isEmpty为true时为true,仅当data.isEmpty为false时为false。


1
投票

您的(数据变量)为null,因此当您调用data.isEmpty时会引发异常,

首先尝试检查它是否不为null

© www.soinside.com 2019 - 2024. All rights reserved.