首页 > 解决方案 > type string 不是 int flutter 类型的子类型

问题描述

我正在创建一个从 API 获取数据的应用程序,最初,我可以成功地获取数据,但几天后,每当我打开应用程序时,我都会收到“字符串类型不是 int 颤振类型的子类型”的错误. 我什至没有更改代码,但仍然在屏幕上显示错误

PrayerRepository.dart

    abstract class PrayerRepository {
      Future<List<Item>> getItem();
    }
    class PrayerRepositoryImpl implements PrayerRepository {
      @override
      Future<List<Item>> getItem() async {
        var response = await http.get("https://muslimsalat.com/riyadh.json?key=key");
        if (response.statusCode == 200) {
          var data = json.decode(response.body);
          List<Item> item = Welcome.fromJson(data).items;
          return item;
        } else {
          throw Exception();
        }
      }
    }

主页.dart

    ListView.builder(
          itemCount: item == null ? 0 : item.length,
          itemBuilder: (BuildContext ctx, int pos) {

            return new Container(
              child: new Center(
                child: new Column(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: <Widget>[
                    new Card(
                      child: Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: new Container(
                          child: Column(
                            children: <Widget>[
                              Padding(
                                padding: EdgeInsets.only(top: 10.0),
                              ),
                              Row(
                                children: <Widget>[
                                  Text("Fajr"),
                                  Padding(
                                    padding: EdgeInsets.only(left: 50.0),
                                  ),
                                  Text(item[pos].fajr),

标签: flutterdart

解决方案


如果您没有更改代码,则您调用的 API 可能已更改。在这种情况下,您可以检查 api 或更改Welcome.fromJson()以处理正确类型的数据


推荐阅读