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

问题描述

你能帮我解决这个关于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 种类型 -

  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