User interface 在Flatter应用程序屏幕之间传递数据或参数的最佳方式是什么?
为了将参数从一个屏幕发送到另一个屏幕,我必须将此参数设置为widgets类中的一个字段。由于许多参数被传递给几个小部件,我认为这可能会给更大的应用程序带来问题User interface 在Flatter应用程序屏幕之间传递数据或参数的最佳方式是什么?,user-interface,architecture,dart,flutter,state,User Interface,Architecture,Dart,Flutter,State,为了将参数从一个屏幕发送到另一个屏幕,我必须将此参数设置为widgets类中的一个字段。由于许多参数被传递给几个小部件,我认为这可能会给更大的应用程序带来问题 高效地在屏幕之间传递数据的最佳方式是什么?通常最好的方式是使用应用程序状态管理。在切换路由之前编辑状态,并在新屏幕上读取状态。如果使用持久性,还可以将应用程序恢复到关闭后的最后状态(这在手机上经常发生) 根据应用程序状态的复杂性,您可以使用flatter内置的状态管理或类似redux的插件 Redux需要更多的样板代码,但也提供了更多的灵
高效地在屏幕之间传递数据的最佳方式是什么?通常最好的方式是使用应用程序状态管理。在切换路由之前编辑状态,并在新屏幕上读取状态。如果使用持久性,还可以将应用程序恢复到关闭后的最后状态(这在手机上经常发生) 根据应用程序状态的复杂性,您可以使用flatter内置的状态管理或类似redux的插件 Redux需要更多的样板代码,但也提供了更多的灵活性,适用于经常需要的非常大的应用程序 这里有一些关于这个主题的有趣文章 备选方案是在路线导航上传递参数。这可以作为路由字符串的一部分(不适用于静态路由字符串)或使用MaterialPage路由(例如() 还有一个使传递参数变得容易的包:
https://pub.dartlang.org/packages/navigate.
导航包的示例如下所示(摘自此):
使用状态管理
Map arg = {"transactionType":TransactionType.fromLeft,"replaceRoute":ReplaceRoute.thisOne};
Navigate.navigate(context,
"home",
transactionType:TransactionType.fromLeft ,
replaceRoute: ReplaceRoute.thisOne,
arg: arg
);