Dart 在flatter中在小部件之间传递数据的最佳方法
我开发了自己的自定义小部件,用于其他视图。在这个自定义小部件中,我有一个存储信息的类属性,假设这是一个列表,它在小部件中获取新项目。现在,我想从我的主窗口小部件的级别获取此列表中的项目 怎么做? 我不想创建这样一个变量:Dart 在flatter中在小部件之间传递数据的最佳方法,dart,flutter,Dart,Flutter,我开发了自己的自定义小部件,用于其他视图。在这个自定义小部件中,我有一个存储信息的类属性,假设这是一个列表,它在小部件中获取新项目。现在,我想从我的主窗口小部件的级别获取此列表中的项目 怎么做? 我不想创建这样一个变量:var customWidget=MyCustomWidget(),然后获取内部变量,如customWidget.createState().myList——我认为这是一个糟糕的解决方案(我不确定它是否会起作用)。同时,将列表传递给自定义小部件的构造函数看起来非常难看 是否有其他
var customWidget=MyCustomWidget()
,然后获取内部变量,如customWidget.createState().myList
——我认为这是一个糟糕的解决方案(我不确定它是否会起作用)。同时,将列表传递给自定义小部件的构造函数看起来非常难看
是否有其他方法获取其他小部件的状态?首先,请记住,在颤振中,数据只能向下传递。设计上不可能访问孩子的数据,只有父母(尽管有一些黑客攻击) 从这一点来看,有两种主要的数据传递解决方案:
class Bar extends StatelessWidget {
final String data;
Bar({this.data});
@override
Widget build(BuildContext context) {
return Text(data);
}
}
BuildContext
BuildContext
。此类允许一个小部件使用以下方法之一从其祖先获取信息:
inheritFromWidgetOfExactType
这使用;这是一种访问速度非常快的小部件
有关其用法的更多详细信息,请参阅
作为旁注,还有第三种解决方案。那是 我不想谈太多细节,因为这与其说是一个合适的解决方案,不如说是一个黑客。(见附件)
但基本上,它允许获取
build
调用之外的任何小部件的状态/上下文。无论是家长还是孩子也来看看这些网站的建筑示例/想法嗨,不明白你是如何解决的,你能帮我解决这个问题吗:建议:你可以发布自己问题的答案,而不是发布问题的更新,所以这个问题不会出现在“未回答的问题”中