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,
Comme Jonah Williams a dit ,
Si vous avez changé
MyApp
d'unStatelessWidget
à unStatefulWidget
, 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()
.