Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在flatter中不使用导航器就可以在类之间传递变量吗?_Flutter - Fatal编程技术网

Flutter 在flatter中不使用导航器就可以在类之间传递变量吗?

Flutter 在flatter中不使用导航器就可以在类之间传递变量吗?,flutter,Flutter,我有两个statefulwidget,它们应该做不同的工作。其中一个从用户那里获取输入(使用文本字段)并将它们相加,然后显示结果(我已经计算出了结果),下一个应该从第一个类中获取这些值并将它们放入条形图中。我知道如何将数据放入条形图(我尝试使用虚拟值),但我不知道如何在不使用导航器的情况下将这些值从第一个类传递到第二个类。使用导航器对我不起作用,因为我不想在这两个类之间导航;我有一个菜单页面,应该是主导航器 有什么办法可以完成吗?小部件A SharedPreferences store = aw

我有两个statefulwidget,它们应该做不同的工作。其中一个从用户那里获取输入(使用文本字段)并将它们相加,然后显示结果(我已经计算出了结果),下一个应该从第一个类中获取这些值并将它们放入条形图中。我知道如何将数据放入条形图(我尝试使用虚拟值),但我不知道如何在不使用导航器的情况下将这些值从第一个类传递到第二个类。使用导航器对我不起作用,因为我不想在这两个类之间导航;我有一个菜单页面,应该是主导航器


有什么办法可以完成吗?

小部件A

SharedPreferences store = await SharedPreferences.getInstance();
double addedValue = inputValueA + inputValueB;
preferences.setDouble("valueToBeDisplayed",addedValue);
小部件B

SharedPreferences store = await SharedPreferences.getInstance();
double valueToBeGraphed = preferences.getDouble("valueToBeDisplayed") ?? 0.0;
//addToGraph(valueToBeGraphed);
SharedReference需要作为依赖项添加

这是如何在持久化应用程序存储中实现它的一般概念


然而,在小部件树中共享状态的更好方法是使用一些状态管理技术,如继承的小部件等。但我个人会使用提供程序库,因为它感觉简单方便。

继承的小部件,也许你可以通过创建一个数据存储来传递变量,该数据存储在你的应用程序的运行时中全局存在,或者你也可以使用继承的Widget创建一个静态类并在任何类中使用它!共享首选项应提供非常小且受限的内存。一般来说,这不是一个好主意。@VidorVistrom是的,我知道这一点,所以我还建议对问题的一般用例使用状态管理技术。但通常使用JS或JQuery进行反应式应用程序开发的web开发人员对状态管理知之甚少。在开始学习使用应用程序设置进行数据共享时,我也掌握了状态管理的概念。