• Yardım
  • Future<dynamic> is not a subtype of type <string> Sorunu

Herkese merhaba,
Kullanıcının giriş yapıp yapmadığını control edip ona göre sayfa yönlendirdiğim bir uygulamam var.
Bunun için uygulama açılırken splash screenin arka tarafında SharedPreferences’ta kayıt olup olmadığını kontrol etmeye çalışıyorum.
Bu kontrol içinde yazmış olduğum bir sınıf var SharedPrefUtils diye fakat bu sınıftaki readPrefStr() fonksiyonuna okuma talebi verdiğimde bana vermiş olduğu hata ### Future<dynamic> is not a subtype of type <string>.
Kod bloklarını aşağıya ekliyorum ne yapabilirim acaba ?

Teşekkür ederim.
Hata:

Splash Screen:

Sınıf:

17 days later
2 months later

Flutter


void main() => runApp(
  AnaGiris(),
  );

class AnaGiris extends StatefulWidget{
  @override
  _AnaGirisState createState() => _AnaGirisState();
}

class _AnaGirisState extends State<AnaGiris> {
  String onay="false";

oku() async{
    final kayitaraci = await SharedPreferences.getInstance();
    String gelen= kayitaraci.getBool("durum").toString();
    return gelen;
}

  @override
  Widget build(BuildContext context) {

    onay=oku();
    return MaterialApp(
      theme: ThemeData(
        primaryColor: Colors.red.shade700,
        accentColor: Colors.pink,
      ),
      home: onay=="true"?AnaSayfa():Giris(),
      routes: rotalar,
      debugShowCheckedModeBanner: false,
    );
  }
}

    ben de giriş yapılmış ise başka sayfaya yönlendirmeye çalışıyorum lakin olmadı

    MustafaKARSLI Size başka bir metotla kullanımı göstereyim o zaman .

    Önce giriş yaparken ne yapacağınızı göstereyim.

     SharedPreferences prefs = await SharedPreferences.getInstance();
     prefs.setString('durum', 'onaylandi');//burada  durum değişkeninin boş olup olmaması bizim için önemli.

    Sonrasında İnitstate içindeki oku() içine yazalım kodları.

     SharedPreferences prefs = await SharedPreferences.getInstance();
      if (prefs.getString('durum') != null) {
    //Buraya yönlendirmenizi yapabilirsiniz. 
    }

    iyi çalışmalar

    Write a Reply...