Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter SharedReferences由于某种原因未保存_Flutter - Fatal编程技术网

Flutter SharedReferences由于某种原因未保存

Flutter SharedReferences由于某种原因未保存,flutter,Flutter,很抱歉所有注释掉的代码。我移动了一些方法,但是如果你在模拟器上运行它,它在重新启动后不会保存,我也不太确定如何修复它。我将发送我的项目克隆链接:。我使用此视频帮助我,以防您需要它: 非常感谢 假设saveData()工作正常,您可以将readData()移到main() 当应用程序重新启动时,您可以获取保存的数据 TaskData td; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized();

很抱歉所有注释掉的代码。我移动了一些方法,但是如果你在模拟器上运行它,它在重新启动后不会保存,我也不太确定如何修复它。我将发送我的项目克隆链接:。我使用此视频帮助我,以防您需要它: 非常感谢

假设
saveData()
工作正常,您可以将
readData()
移到
main()

当应用程序重新启动时,您可以获取保存的数据

TaskData td;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  SharedPreferences prefs = await SharedPreferences.getInstance();    

  List<String> spList = await prefs.getStringList('list') ?? [];
  print('read spList: $spList');
  td.taskList = spList.map((task) => Task.fromMap(jsonDecode(task))).toList();

  runApp(MyApp());
}
taskdatatd;
Future main()异步{
WidgetsFlutterBinding.ensureInitialized();
SharedReferences prefs=等待SharedReferences.getInstance();
List spList=WAIT prefs.getStringList('List')??[];
打印('read spList:$spList');
td.taskList=spList.map((task)=>task.fromMap(jsonDecode(task))).toList();
runApp(MyApp());
}

我检查了您的代码,无论何时运行应用程序,您的
td=TaskData(saveData)-在readData()中
&&TaskData(saveData)-这都会添加到您的构建方法中初始化

这两个对象都被初始化为不同的实例,这就是为什么在saveData()中会得到null值,并且每次都会从SharedReference中得到null数据