我只是想知道是否存在使用path_provider包从文件中读取数据并将此数据传递给Provider类并实例化一个类的正确方法,该类包含一个由我们从该类读取的数据定义的类变量上面的文件。
类似的东西:
在main.dart
内部:
.
.
Future<String> FetchData() async {
final directory = await getApplicationDocumentsDirectory();
String path = directory.path;
final file = File('$path/data.txt');
Future<String> data = file.readAsString();
return data;
}
.
.
.
// INSIDE MyApp():
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<MyAppData>(
create: (context) => MyAppData(FetchData()), //<-
//etc...
.
.
现在在MyAppData类中:
class MyAppData extends ChangeNotifier {
Future<String> data;
MyAppData(this.data);
//etc...
这种方法的问题是我试图从文件中获取一些列表(其数据将随着用户使用我的应用程序而改变),然后MyAppData类中的所有内容(所有成员变量)都必须的类型为Future
,我不确定应用程序的UI(最初还取决于这些列表的长度)是否不会崩溃。
我的问题基本上是:
当我们尝试通过以下方式定义 path_provider
和Provider
软件包的正确方法是:我们从本地文件读取的数据?
如果这不是正确的方法,请提出在本地读取和使用数据的正确方法。
P.S:我对Flutter很陌生。正在使用Provider构建我的第一个应用程序,方法是定义一个带有一些示例列表的类,这些变量我已经定义了,直到后来我意识到我也需要在本地读取数据。但是现在进行太多更改对我来说有点冒险,因为我已经完成了90%的代码。 :D