首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Flutter Stateful小部件

无法使用Flutter Stateful小部件
EN

Stack Overflow用户
提问于 2020-09-01 21:52:44
回答 1查看 393关注 0票数 2

我是拉维。我对Flutter几乎是个新手,但我对编程并不陌生。我被Flutter的有状态部件卡住了。因为我是这个SDK的新手,所以我无法弄清楚为什么我的状态没有更新。我所做的只是编写了一些代码,每当单击按钮时都会递增一个数字,我知道我们必须使用有状态窗口小部件来实时更新任何数据。但是我的代码并没有像它必须的那样工作。有没有人能帮我。

代码语言:javascript
复制
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
int level = 0;
return MaterialApp(
  home: Scaffold(
      appBar: AppBar(
        title: Text('Stateful Widget'),
      ),
      body: Center(
        child: Column(
          children: [
            Text('$level'),
            RaisedButton(
              child: Text('Increment'),
              onPressed: () {
                setState(() {
                  level = level + 1;
                  print(level);
                });
              },
            ),
          ],
        ),
      )),
);
}
}

Console: 
Performing hot reload...
Syncing files to device sdk gphone x86 arm...
Reloaded 1 of 513 libraries in 1,722ms.
I/flutter ( 8886): 1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-01 21:55:26

问题出在level变量的作用域上。它不应该在你的build方法中,而应该在你的class

代码语言:javascript
复制
class _MyAppState extends State<MyApp> {
//Moved level here.
  int level = 0;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Stateful Widget'),
        ),
        body: Center(
          child: Column(
            children: [
              Text('$level'),
              RaisedButton(
                child: Text('Increment'),
                onPressed: () {
                  setState(() {
                    level = level + 1;
                    print(level);
                  });
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63689086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档