如何解决Flutter mobx 上的 ObservableList 始终为空
我需要将我的应用程序存储在 ObservableList 上,但尽管内部函数正确,但它们还是以某种方式变空了。
import 'package:mobx/mobx.dart';
import 'package:device_apps/device_apps.dart';
import 'package:shared_preferences/shared_preferences.dart';
part 'crud_apps.g.dart';
class CrudApps = _CrudApps with _$CrudApps;
abstract class _CrudApps with Store {
@observable
var allAppName = ObservableList<String>();
@observable
var allPackageName = ObservableList<String>();
@observable
var pinnedOnTaskBar = ObservableList<String>();
@observable
var allApplications = ObservableList<Application>();
@action
Future getApps() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
// Returns a list of only those apps that have launch intent
final allApplicationsAux = await DeviceApps.getInstalledApplications(
includeSystemApps: true,onlyAppsWithLaunchIntent: true,includeAppIcons: true,);
// Save all Name and Package Name
for (var i = 0; i < allApplicationsAux.length - 2; i++) {
allAppName.add(allApplicationsAux[i].appName);
allPackageName.add(allApplicationsAux[i].packageName);
allApplications.add(allApplicationsAux[i]);
}
print(allApplications);
prefs.setString('allApplications',allApplications.toString());
prefs.setString('allAppName',allAppName.toString());
prefs.setString('allPackageName',allPackageName.toString());
return allApplications;
}
@action
Future appDrawerData() async {
// allApplications = await DeviceApps.getInstalledApplications(
// includeSystemApps: true,// onlyAppsWithLaunchIntent: true,// includeAppIcons: true,// );
print(allApplications);
return allApplications;
}
@action
Future pinApp(app) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String pinnedApps = prefs.getString('pinnedOnTaskBar');
prefs.setString('pinnedOnTaskBar',app.toString());
print(app);
String stringValue = prefs.getString('pinnedOnTaskBar');
print(stringValue);
}
}
当我打印 getApps() 中的 allApplications 时,它工作正常。在 appDrawerData() 中打印时如何返回空。我已经尝试在每个小部件中使用 iniState 来尝试纠正和更改 ObservableList 实现,但没有任何效果。
我做错了什么??麻烦你了
不胜感激任何帮助、建议或指导。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。