如何将通过方法接收到的值存储在另一个变量实例中?
How to store the value received through a method in another variable instance?
如何将通过方法接收到的值存储在另一个变量实例中?
我想将传递给 Statefulwidget 的值存储在我无法执行的实例中。这就是我将值传递给 Statefulwidget 方法的方式。
_MyHomePageState().getprints(state1);
但无法将数据存储在 StatefulWidget 的实例中,请查看评论以了解哪些有效哪些无效
var state11;
getprints(var state1){
print("hello");
print(state1); //this works
state11 = state1; // this does not works
}
在flutter中如何保存到实例中?
与 'flutter' 相比,这更像是一个 'dart' 问题。所以我刚刚测试了 dartpad.dev
中的代码
事实是,它确实存储在 state1 中。但问题是,您不能用另一个实例引用它,因为该实例将是一个新创建的实例,并且对 state1 具有不同的值。解决方案?
您可以将 state11 设为静态变量,而不是调用实例,而是直接使用 class 调用它。像这样:
void main() {
print(MyHomePageState.state11); //Line 1
MyHomePageState().getprints('Some state');
print(MyHomePageState.state11); //Line 4
}
class MyHomePageState {
static var state11;
getprints(var state1) {
print("hello"); //Line 2
print(state1); //Line 3
state11 = state1;
}
}
输出为:
null
hello
Some state
Some state
这确保 state1 值的变化反映在 class 的所有实例中。
或者...
您可以将实例存储在一个变量中,然后调用该实例的变量。
void main() {
var homePage = MyHomePageState();
homePage.getprints('Some state');
print(homePage.state11); //Line 3
}
class MyHomePageState {
var state11;
getprints(var state1) {
print("hello"); //Line 1
print(state1); //Line 2
state11 = state1;
}
}
输出为:
hello
Some state
Some state
但是由于您将其用于主页小部件,我建议您使用第一种方法。
如何将通过方法接收到的值存储在另一个变量实例中?
我想将传递给 Statefulwidget 的值存储在我无法执行的实例中。这就是我将值传递给 Statefulwidget 方法的方式。
_MyHomePageState().getprints(state1);
但无法将数据存储在 StatefulWidget 的实例中,请查看评论以了解哪些有效哪些无效
var state11;
getprints(var state1){
print("hello");
print(state1); //this works
state11 = state1; // this does not works
}
在flutter中如何保存到实例中?
与 'flutter' 相比,这更像是一个 'dart' 问题。所以我刚刚测试了 dartpad.dev
中的代码事实是,它确实存储在 state1 中。但问题是,您不能用另一个实例引用它,因为该实例将是一个新创建的实例,并且对 state1 具有不同的值。解决方案? 您可以将 state11 设为静态变量,而不是调用实例,而是直接使用 class 调用它。像这样:
void main() {
print(MyHomePageState.state11); //Line 1
MyHomePageState().getprints('Some state');
print(MyHomePageState.state11); //Line 4
}
class MyHomePageState {
static var state11;
getprints(var state1) {
print("hello"); //Line 2
print(state1); //Line 3
state11 = state1;
}
}
输出为:
null
hello
Some state
Some state
这确保 state1 值的变化反映在 class 的所有实例中。
或者... 您可以将实例存储在一个变量中,然后调用该实例的变量。
void main() {
var homePage = MyHomePageState();
homePage.getprints('Some state');
print(homePage.state11); //Line 3
}
class MyHomePageState {
var state11;
getprints(var state1) {
print("hello"); //Line 1
print(state1); //Line 2
state11 = state1;
}
}
输出为:
hello
Some state
Some state
但是由于您将其用于主页小部件,我建议您使用第一种方法。