如何解决错误:'setState' 未定义

问题描述

你能帮我解决这个关于setState()

的问题吗?

错误
没有为“MyApp”类型定义方法“setState”。
尝试将名称更正为现有方法名称,或定义名为“setState”的方法

代码

@H_502_10@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 种类型 -

  1. StatelessWidget - 它们没有关联的 State 对象。一旦创建/渲染,它们就不能被改变。他们将不得不再次重建

  2. StatefulWidget - 一个 State 对象与它们相关联。您必须创建另一个扩展 State 类的类。

class YellowBird extends StatefulWidget {
  @override
  _YellowBirdState createState() => _YellowBirdState();
}

class _YellowBirdState extends State<YellowBird> {
  @override
  Widget build(BuildContext context) { }
}

查看此Medium article