isEmpty在null上被调用

时间:2019-11-05 13:48:44

标签: flutter dart

我是新手。

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

这是我的代码

#standardSQL
SELECT id, a1, a2
FROM data, UNNEST(array_1) AS a1 WITH OFFSET 
JOIN UNNEST(array_2) AS a2 WITH OFFSET
USING(OFFSET)

但是抛出错误

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

如何解决?

2 个答案:

答案 0 :(得分:1)

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

尝试先检查它是否不为空

答案 1 :(得分:0)

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

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

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