shinonome-inc / mobile_kota78_mogi_Qiita

0 stars 0 forks source link

MyPage #12

Open kota78 opened 3 years ago

kota78 commented 3 years ago
static Future<User> fetchUserDetail() async {
    final _url = "https://qiita.com/api/v2/users/ko_cha78";
    final response = await http.get(
        Uri.parse(_url),
        /*headers: {
          'Authorization': 'Bearer 727a80782b4e727e1a958abc6142bdf6499e36da',
        },*/
    );
    print(_url);
    print(response.statusCode.toString());
    if (response.statusCode == 200) {
      final User userDetailJsonArray = json.decode(response.body);
      print(_url);
      return userDetailJsonArray;
    } else {
      throw Exception('Failed to load user');
    }
  }

print(response.statusCode.toString());を使ってデータ通信ができているか確認した。 headerがなくてもできた。(200が吐き出された)

kota78 commented 3 years ago

通信はできているがデータを使えていない データがnullだと出る。

kota78 commented 3 years ago

https://flutter.dev/docs/cookbook/networking/fetch-data 公式ページ通り書こうとするとバージョンが古いらしく、lateが使えない。 バージョンを上げると他でエラーが出る。

kota78 commented 3 years ago

snapshot.hasdataはtrueになってる。 だけどsnapshot.serNameがStringじゃないって言われる。 A non-null String must be provided to a Text widget.

kota78 commented 3 years ago

verを12に変えた。 this.〇〇を required this.〇〇にかえたらできた。そのせいか、 ArticleListView(articles: snapshot.data),と書くとエラーが出た。 snapshot.とまで打って、予測変換の欄にデータの型が書いてあったので、List<Article>の中から選んだ。 を ArticleListView(articles: snapshot.requireData), に変えたらエラー吐かなくなった。

kota78 commented 3 years ago
class User {
  final String id;
  final String iconUrl;
  //final String userName;
  //final String description;
  //final int followeesCount;
  //final int followersCount;
  User({required this.id, required this.iconUrl,/* required this.userName, required this.description, required this.followersCount, required this.followeesCount*/});
  factory User.fromJson(Map<String, dynamic> json) {
    return User(
      id: json['id'],
      iconUrl: json['profile_image_url'],
      /*userName: json['name'],
      description: json['description'],
      followeesCount: json['followees_count'],
      followersCount: json['followers_count'],*/
    );
  }
}
kota78 commented 3 years ago

MyPageを作成するために追加した変数が邪魔をして 例の A non-null String must be provided to a Text widget. がでていた。