如何解决如何从应用程序的任何屏幕访问集合中的值?
当我的应用程序启动时,它会遍历一个单词列表并创建一个特定的集合。这个集合是在应用程序启动时创建的。一旦创建,它将不再改变。 我如何从任何屏幕访问这个集合? 我必须使用提供程序吗?我应该从屏幕传递这个集合来筛选小部件树吗? 或者因为它在某种程度上是一个“常量集”(一旦创建就不会改变),还有另一种方法可以让它从应用程序的任何地方访问?
解决方法
这取决于。如果您的 App 只有 2 或 3 个屏幕,您可以将数据从屏幕传递到屏幕。如果你有更多的屏幕,我会推荐 InheritedWidget:
https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html
这不是唯一的方法,但这是我通常使用的方法。
您的 InheritedWidget 应如下所示(此代码未经测试)
class MyInheritedWidget extends InheritedWidget
{
final allValues;
MyInheritedWidget(
{
Key? key,required this.allValues,required Widget child
}): super(key: key,child: child);
static MyInheritedWidget? of(BuildContext context)
{
return context.dependOnInheritedWidgetOfExactType<MyInheritedWidget>();
}
}
然后您可以在 main() 中使用它:
void main() {
///You can generate your values here
final theValues = generateYourValues();
runApp(
MaterialApp(
debugShowCheckedModeBanner: false,routes: {
'/': (context) => MyInheritedWidget
(
allValues: theValues,child: AppStarter()
),'/message': (context) => AnotherPage(),},),);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。