- 已关闭**。此问题为opinion-based。当前不接受答案。
- 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
2小时前关门了。
Improve this question
我正在开发一个flutter应用程序,在我的应用程序中,我有一个userData模型来存储用户的数据。然后我有一个个人资料页面,在那里显示几乎所有的数据。我使用Firebase来存储这些userData对象。
正如我现在所拥有的,我有一个futureBuilder(),用于每个需要用户数据的小部件,也就是说,我有一个text()小部件,用于显示用户名,在futureBuilder中,future是一个从firebase文档中检索名称字段的方法。
我想知道是否将整个页面 Package 在futureBuiler中更好,futureBuiler是一个方法,该方法一次检索userData对象而不是字段,然后在futureBuilder中构建所有小部件。
body: Stack(
children: [
_profileBanner(), //futureBuilder
_whiteBackgroundContainer(),
_profileImage(), //futureBuilder
_userName(), //futureBuilder
_backArrow(),
_profilePageButtons(),
_reputationBuble(), //futureBuilder
_friendsAndGamesCounter(),//futureBuilder
_personnaInformationRow(), //futureBuilder
_divider(),
_biographyTile(), //futureBuilder
_sportsList(), //futureBuilder
],
)
2条答案
按热度按时间lmyy7pcs1#
是的,当您使用API或远程数据库时,通常需要使用使用最少HTTP调用的方法,在这种情况下,如果您可以一次获取所有用户数据,则可以这样做,并在未来的构建器中使用一个大部件“配置文件屏幕”,然后使用响应填充UI
**PS:**避免使用UI元素的函数,而是使用无状态类
hts6caw32#
我同意皮埃尔。
这是一个很好的例子,说明Riverpod可以为您保存大量的布线和管理代码,从而增加价值。最终,这取决于您和您的应用。但如果您发现自己在许多地方阅读相同的数据片段,并且必须在数据发生变化时保持所有这些地方都是最新的,请考虑状态管理解决方案。
不幸的是(或者说幸运的是?)Flutter没有一个指定的状态管理解决方案,所以它更多的是一个选择你自己的冒险。
但是,如果您越来越多地遇到这些状态问题,发现自己在编写和维护必须获得相同状态的粘合代码,并在状态更改时通知许多地方,这表明库可以提供帮助。
您可以使用Riverpod、Flutter Hooks,使用GetX之类的服务定位器,并将此数据保存在一个位置,只要适合您的解决方案即可。