问题描述
你能帮我解决这个关于setState()
错误:
没有为“MyApp”类型定义方法“setState”。
尝试将名称更正为现有方法的名称,或定义名为“setState”的方法。
代码:
return MaterialApp(
debugShowCheckedModeBanner: false,home: Scaffold(
appBar: AppBar(
centerTitle: true,title: Text('Gestion Produit',),backgroundColor: color1,backgroundColor: color2,body: SingleChildScrollView(
child: Column(
children: < Widget > [
Container(
padding: EdgeInsets.all(20),margin: EdgeInsets.fromLTRB(20,20,20),decoration: Boxdecoration(
borderRadius: BorderRadius.circular(20),color: color3,child: Column(
children: [
Container(
width: double.infinity,height: 30,child: TextFormField(
controller: refCon,decoration: new Inputdecoration(
disabledBorder: InputBorder.none,contentPadding:
EdgeInsets.only(left: 15,bottom: 11,top: 11,right: 15),hintText: "Votre Reference",hintStyle: TextStyle(color: color1),SizedBox(height: 20),Container(
width: double.infinity,child: TextFormField(
controller: qteCon,keyboardType: TextInputType.number,hintText: "Votre Quantite",child: TextFormField(
controller: puCon,hintText: "Prix Unitaire",RaisedButton(
onpressed: () {
setState((){
ref = refCon;
qte = qteCon;
pu = puCon;
});
},color: color2,textColor: color3,disabledColor: Colors.grey,disabledTextColor: Colors.black,padding: EdgeInsets.all(8.0),splashColor: color1,child: Text(
"Ajouter Un Produit",style: TextStyle(fontSize: 20.0),)
],
解决方法
您的小部件没有状态。 SetState 方法只能在有状态的小部件中使用。
,Flutter 小部件有 2 种类型 -
-
StatelessWidget
- 它们没有关联的State
对象。一旦创建/渲染,它们就不能被改变。他们将不得不再次重建 -
StatefulWidget
- 一个State
对象与它们相关联。您必须创建另一个扩展State
类的类。
class YellowBird extends StatefulWidget {
@override
_YellowBirdState createState() => _YellowBirdState();
}
class _YellowBirdState extends State<YellowBird> {
@override
Widget build(BuildContext context) { }
}