json - 如何将通过方法接收的值存储在另一个变量实例中?
问题描述
如何将通过方法接收的值存储在另一个变量实例中?
我想将传递给 Statefulwidget 的值存储在我无法执行的实例中。这就是我将值传递给 Statefulwidget 方法的方式。
_MyHomePageState().getprints(state1);
但无法将数据存储在 StatefulWidget 中的实例中,请查看评论以查看哪些工作正常哪些不工作
var state11;
getprints(var state1){
print("hello");
print(state1); //this works
state11 = state1; // this does not works
}
我应该如何将它保存在颤动的实例中?
解决方案
这更像是一个“飞镖”问题,而不是一个“颤抖”问题。所以我只是在dartpad.dev中测试了代码
问题是,它确实存储在 state1 中。但问题是,你不能用另一个实例来引用它,因为那个实例将是一个新创建的实例,并且 state1 的值不同。解决方案?您可以将 state11 设为静态变量,而不是调用实例,而是直接使用类调用它。像这样:
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 值的变化反映在类的所有实例中。
或者...您可以将实例存储在变量中,然后调用该实例的变量。
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
但是由于您将其用于 HomePage 小部件,因此我建议您使用第一种方法。
推荐阅读
- php - 获取类别中显示的所有产品的 WooCommerce 产品条款
- php - Phalcon PHP 单元测试 DI 共享实例
- java - 如何在 Java 中使用 JAXB 将 XML 字符串解组到列表
- google-apps-script - 如何使用 Google Apps 脚本编辑 Google 照片中的多张照片?
- timestamp - 从 Notepad++ 中的字幕文件中删除空行和时间戳
- android - Android /获取与被解雇的通知相对应的ID
- dart - 我尝试创建 facebook 登录。如何解决这个问题?
- c# - 我们能否在具有共享托管的 Linux 服务器上托管一个自包含的 ASP.NET Core 应用程序
- extjs - 表单字段值在提交过程中转义,除非表单字段值禁用选项
- android - 从 fragD 到 fragA 的 popBackStack 之后调用了哪个方法?