Flutter Dropdown Button在屏幕导航期间不保存状态
Posted
技术标签:
【中文标题】Flutter Dropdown Button在屏幕导航期间不保存状态【英文标题】:Flutter Dropdown Button not saving state during Screen Navigation 【发布时间】:2021-12-21 20:52:42 【问题描述】:您好,我遇到了一个问题,我无法保存 DropdownButton 的状态(下拉按钮本身中显示的文本,这是我选择的值)。我正在使用 GetX 进行状态导航。
由于我的代码的结构方式,当我从一个屏幕导航到第二个屏幕并希望返回时,我使用Get.to(First()
而不是Get.back()
。
这是我的逻辑:
-
我会将用户从 DropdownButton 中选择的值保存到 SharedPreferences 中。由于按钮的性质,该值也将立即在按钮本身上显示给用户。
当用户离开(例如他现在在第二个屏幕上)并再次访问第一个屏幕时,我将从 SharedPreferences 加载选定的值并构造 DropdownButton 项,以便该值将显示在顶部。李>
我面临的问题: 从 SharedPreferences 检索数据是异步的,所以在等待从 SharedPreferences 检索数据时,我不知道如何再次构造 FirstScreen。谁能帮帮我?谢谢!
【问题讨论】:
【参考方案1】:使用 GetStorage() 代替 shared-preference 。没有异步问题
dependencies:
get_storage: ^2.0.3
use GetStorage through an instance or use directly GetStorage().read('key')
final box = GetStorage();
To write information you must use write :
box.write('quote', 'GetX is the best');
To read values you use read:
print(box.read('quote'));
// out: GetX is the best
【讨论】:
成功了,谢谢! 请点赞。欢迎!以上是关于Flutter Dropdown Button在屏幕导航期间不保存状态的主要内容,如果未能解决你的问题,请参考以下文章
Flutter强大的下拉筛选菜单gzx_dropdown_menu
如何根据其他下拉选择将本地 Json 加载到 Flutter DropDown?