web-dev-qa-db-fra.com

type 'int' n'est pas un sous-type de type 'String' erreur dans Dart

Ni l'instruction print, ni quoi que ce soit en dessous, ne s'exécute et le message d'erreur indique que le problème est la dernière ligne ci-dessus commençant par var time. J'ai également vérifié que earthquakes est une liste cultivable, ce qui signifie que earthquakes[0] devrait s'exécuter sans problème, mais ce n'est pas le cas ... Qu'est-ce que je fais de travers? Faites-moi savoir si la question nécessite davantage de précisions et je la fournirai . Lien vers gif of errorLien to code on GitHub

La partie problématique de mon code est la suivante. Erreur signalée à la ligne 43.

import 'package:flutter/material.Dart';
import 'Dart:async';
import 'Dart:convert';
import 'package:http/http.Dart' as http;
import 'package:intl/intl.Dart';

class Quake extends StatefulWidget {
  var _data;

  Quake(this._data);

  @override
  State<StatefulWidget> createState() => new QuakeState(_data);
}

class QuakeState extends State<Quake> {
  // https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson


//      "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson";
  var _data;


  QuakeState(this._data);

  @override
  Widget build(BuildContext context) {
//    debugPrint(_data['features'].runtimeType.toString());

    List earthquakes = _data['features'];
    return new Scaffold(
        appBar: new AppBar(
          title: new Text("Quakes - USGS All Earthquakes"),
          backgroundColor: Colors.red,
          centerTitle: true,
        ),
        body: new ListView.builder(
            itemCount: earthquakes.length,
            itemBuilder: (BuildContext context, int index) {
              print("${earthquakes[index]}");

              var earthquake = earthquakes[index];
              var time = earthquake['properties']['time'];
              time *= 1000;

              //var dateTime = new DateTime.fromMillisecondsSinceEpoch(int.parse(time));
              //time = new DateFormat.yMMMMd(dateTime).add_jm();
              return new ListTile(
                title: new Text(time ?? "Empty"),
              );
            }));
  }
}

Future<Map> getJson(String url) async {
  return await http.get(url).then((response) => json.decode(response.body));
}
2
ThinkDigital
title: new Text(time ?? "Empty"),

devrait être

title: new Text(time != null ? '$time' : "Empty"),

ou

title: new Text('${time ?? "Empty"}'),
4

Je ne reçois aucune erreur. Je ne sais pas quoi vous dire ...

 

0
scottstoll2017