Home > OS >  2 Problems from Flutter Beginner Course from Angela, Clima project after refactoring code
2 Problems from Flutter Beginner Course from Angela, Clima project after refactoring code

Time:09-08

1) From loading_screen.dart :

Error : Instance member 'getData' can't be accessed using static access.

Locator( ) is my location handling class.

import 'package:flutter/material.dart';
import 'package:clima/services/location_handler.dart';
import 'package:clima/services/networking.dart';
 
const myAPI = 'cant post api online but  its  just alphabets and numbers passed as a string';
 
class LoadingScreen extends StatefulWidget {
  @override
  _LoadingScreenState createState() => _LoadingScreenState();
}
 
class _LoadingScreenState extends State<LoadingScreen> {
  late double latitood;
  late double longitood;
 
  void initState() {
    //this method is called the moment we run our app.
    super.initState();
    getLocationData();
  }
 
  void getLocationData() async {
    Locator loca = Locator();
    await loca.getCurrentLocation();
    latitood = loca.latitude;
    longitood = loca.longitude;
 
    NetworkHelper NetHelp = NetworkHelper(
        //pasing url info into Network Helper class.
        'https://api.openweathermap.org/data/2.5.weather?lat=$latitood&lon=$longitood&appid=$myAPI');
    var weatherDataFinal = await NetworkHelper.getData();
  }
 
  @override
  Widget build(BuildContext context) {
    return Scaffold();
  }
}

2) From networking.dart :

Error : The argument type 'String' can't be assigned to the parameter type 'Uri'.

import 'dart:convert'; /
import 'package:http/http.dart' as http;
 
class NetworkHelper {
  NetworkHelper(this.url);
  final String url;
 
  Future getData() async {
    http.Response response = await http.get(url);
    //passing url as a single string to get method to get Response.
    if (response.statusCode == 200) {
      String data = response.body;
      var decodedData = jsonDecode(data);
      //decoding and putting data into decodedData variable of dynamic type.
      return decodedData;
    } else {
      print(response.statusCode);
    }
  }
}

Did someone encounter these problems ? If you did and found a Solution then please help me !!!!

CodePudding user response:

This await NetworkHelper.getData(); should be await NetHelp.getData(); because that is how you named your variable.

await http.get(url); should be await http.get(Uri.parse(url));

  • Related