Flutter 设置状态不更新

Flutter 设置状态不更新,flutter,setstate,Flutter,Setstate,我就是搞不清楚在颤振中这种设置状态的方法有什么问题。一切似乎都很好。但文本不会在按下时更新 class NetBalanceWidget extends StatefulWidget { @override _NetBalanceWidgetState createState() => _NetBalanceWidgetState(); } class _NetBalanceWidgetState extends State<NetBalanceWidget>

我就是搞不清楚在颤振中这种设置状态的方法有什么问题。一切似乎都很好。但文本不会在按下时更新

class NetBalanceWidget extends StatefulWidget {
  @override
  _NetBalanceWidgetState createState() => _NetBalanceWidgetState();
}

    class _NetBalanceWidgetState extends State<NetBalanceWidget> {
      @override
      Widget build(BuildContext context) {
        String text = 'NetBalance-Amount';
        return RawMaterialButton(
          onPressed: () {
            setState(() {
              text = 'It works';
            });
          },
          child: Container(
            height: 80.0,
            child: Center(
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  Text(text),
                  Text('0.00'),
                ],
              ),
            ),
          ),
        );
      }
    }
类NetBalanceWidget扩展StatefulWidget{
@凌驾
_NetBalanceWidgetState createState()=>NetBalanceWidgetState();
}
类_NetBalanceWidgetState扩展状态{
@凌驾
小部件构建(构建上下文){
字符串文本='净余额金额';
返回原材料按钮(
已按下:(){
设置状态(){
text=‘它有效’;
});
},
子:容器(
身高:80.0,
儿童:中心(
孩子:排(
mainAxisAlignment:mainAxisAlignment.spaceAround,
儿童:[
文本(文本),
文本('0.00'),
],
),
),
),
);
}
}

build
方法中将
文本作为局部变量
setState
实际上只是再次调用
build
,并将
text
的值重置回其默认值“NetBalance Amount”

将其声明移到
生成之外

class _NetBalanceWidgetState extends State<NetBalanceWidget> {
  String text = 'NetBalance-Amount';

  @override
  Widget build(BuildContext context) {
    return RawMaterialButton(
      onPressed: () {
        setState(() {
          text = 'It works';
        });
      },
      child: Container(
        height: 80.0,
        child: Center(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              Text(text),
              Text('0.00'),
            ],
          ),
        ),
      ),
    );
  }
}
class\u NetBalanceWidgetState扩展状态{
字符串文本='净余额金额';
@凌驾
小部件构建(构建上下文){
返回原材料按钮(
已按下:(){
设置状态(){
text=‘它有效’;
});
},
子:容器(
身高:80.0,
儿童:中心(
孩子:排(
mainAxisAlignment:mainAxisAlignment.spaceAround,
儿童:[
文本(文本),
文本('0.00'),
],
),
),
),
);
}
}

build
方法中将
文本作为局部变量
setState
实际上只是再次调用
build
,并将
text
的值重置回其默认值“NetBalance Amount”

将其声明移到
生成之外

class _NetBalanceWidgetState extends State<NetBalanceWidget> {
  String text = 'NetBalance-Amount';

  @override
  Widget build(BuildContext context) {
    return RawMaterialButton(
      onPressed: () {
        setState(() {
          text = 'It works';
        });
      },
      child: Container(
        height: 80.0,
        child: Center(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              Text(text),
              Text('0.00'),
            ],
          ),
        ),
      ),
    );
  }
}
class\u NetBalanceWidgetState扩展状态{
字符串文本='净余额金额';
@凌驾
小部件构建(构建上下文){
返回原材料按钮(
已按下:(){
设置状态(){
text=‘它有效’;
});
},
子:容器(
身高:80.0,
儿童:中心(
孩子:排(
mainAxisAlignment:mainAxisAlignment.spaceAround,
儿童:[
文本(文本),
文本('0.00'),
],
),
),
),
);
}
}