无法使用Flutter Stateful小部件

问题描述

我是拉维。我对Flutter相当陌生,但对编程却并不陌生。我被困在Flutter的有状态小部件上。由于我是此SDK的新手,所以我无法弄清楚为什么我的状态没有得到更新。我所做的只是写了一些代码,每当单击一个按钮时,该代码都会增加一个数字,而且我知道我们必须使用有状态的小部件才能实时更新任何数据。但我的代码无法正常工作。谁能帮我这个忙。

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

Flutter Stateful widget demo

解决方法

问题出在您的level变量的范围之内。它不应该在您的build方法中,而应该在您的class

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);
                  });
                },],);
  }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...