在处理颤动后离开页面然后重新输入时,旧值将被保存。
我不希望发生这种情况。
例如,当我第一次输入:
int number = 1;
class TestPage extends StatefulWidget {
@override
_TestPageState createState() => _TestPageState();
}
bool donus = true;
class _TestPageState extends State<TestPage> {
List<Todo> sorular = new List<Todo>();
@override
void initState() {
print(donus);
super.initState();
getTodos();
}
bool pressAttention = true;
String ileri = "İleri", geri = "Geri";
@override
Widget build(BuildContext context) {number++;
print(number);
输出:1
页面的第二项: 输出:2
我不知道该如何解决。
答案 0 :(得分:0)
number
变量的范围超出页面及其状态的范围。
number
本质上是静态的或全局的,并且其生存期与您的应用程序有关。加强其范围,以便在状态类中声明它,并在initState
方法中对其进行初始化(对于私有非最终变量)。
class TestPage extends StatefulWidget {
@override
_TestPageState createState() => _TestPageState();
}
bool donus = true;
class _TestPageState extends State<TestPage> {
List<Todo> sorular = new List<Todo>();
int _number;
@override
void initState() {
_number = 1;
print(donus);
super.initState();
getTodos();
}
bool pressAttention = true;
String ileri = "İleri", geri = "Geri";
@override
Widget build(BuildContext context) {
_number++; // You probably don't want to increment every time you build,
// but I have no idea what you're using `number` for.
print(_number);
您的donus
变量也是全局变量,这不太可能是您想要的。 Dart是一种面向对象的语言。有关类,范围等的更多详细信息,请参见language tour。