web-dev-qa-db-fra.com

Une autre exception a été levée: le type 'MyApp' n'est pas un sous-type du type 'StatelessWidget'

Je viens juste de commencer à utiliser Flutter et je rencontre ce problème en exécutant mon code "Une autre exception a été émise: le type" MonApp "n'est pas un sous-type de type" StatelessWidget "". Et la partie intéressante est que je n'ai même pas ce "StatelessWidget" dans mon code.

   import 'package:flutter/material.Dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  List<String> _bars = ['Olivio bar'];
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(
            title: Text('Drinkzz'),
          ),
          body: Column(
            children: [
              Container(
                margin: EdgeInsets.all(10.0),
                child: RaisedButton(
                  onPressed: () {
                    _bars.add('Riviera Bar');
                  },
                  child: Text('Add new Bar!'),
                ),
              ),
              Column(
                children: _bars
                    .map((element) => Card(
                          child: Column(
                            children: <Widget>[
                              Image.asset('assets/olivio.jpg'),
                              Text(element)
                            ],
                          ),
                        ))
                    .toList(),
              )
            ],
          )),
    );
  }
}

Je suis vraiment perdu et je demanderais de l'aide!

Merci,

25
Leonardo

Comme Jonah Williams a dit ,

Si vous avez changé MyApp d'un StatelessWidget à un StatefulWidget, vous devez redémarrer à chaud, car il est appelé dans

Cela a été expliqué à plusieurs reprises lors de sessions de codage en direct, lorsque vous apportez des modifications à des fonctions telles que initState(), vous devez redémarrer l'application. Un cas similaire s'applique à vous. Lorsque vous avez modifié les propriétés du widget MyApp liées à l'état, vous devez redémarrer votre application pour que ces modifications prennent effet.

En gros , lorsque vous rechargez l'application à chaud, elle appelle la fonction build(), initState() n'est appelée que lorsque vous redémarrez l'application, de sorte que l'application réinitialise tout, y compris le widget dont vous avez modifié la fonction initState().

48
BasedMusa