首页 > 解决方案 > Flutter 中的 PageView.Builder 在 null 上调用了 getter 'length'。接收方:null 尝试调用:长度

问题描述

当使用来自 API 的响应时显示错误 在 null 上调用了 getter 'length'。接收方:null 尝试调用: 这里的长度是我的 API 代码

var url =
      "https://domain.php";
  var res;
  var splashs;
  void initState() {
    super.initState();
    fetchData();
  }

  fetchData() async {
    res = await http.get(url);
    splashs = jsonDecode(res.body);
    setState(() {});
  }

同时使用 List 然后代码正常工作

 List<Map<String, String>> splashs = [
    {
      "header": "Flatros",
      "text": "Welcome to Flatros, Let’s shop!",
      "image_name": "assets/images/splash_1.png"
    },
    {
      "header": "Shopping",
      "text":
          "We help people conect with store \naround United State of America",
      "image_name": "assets/images/splash_2.png"
    },
    {
      "header": "Multi Category",
      "text": "FInal Screen",
      "image_name": "assets/images/splash_3.png"
    },
  ];

标签: flutterviewbuilder

解决方案


可能您需要将数据转换为ListArray

  List splashs = new List();
  
  fetchData() async {
    res = await http.get(url);
    final data = jsonDecode(res.body);
    for (var i in data) {
      splashs.add(i);   // Create a list and add data one by one
    }
    setState(() {});
  }

推荐阅读