Flutter Web - 外部编辑时文件不更新
Posted
技术标签:
【中文标题】Flutter Web - 外部编辑时文件不更新【英文标题】:Flutter Web - File doesn't update when edited externally 【发布时间】:2021-11-04 22:42:23 【问题描述】:我有一个带有配置文件夹的简单 Flutter 应用程序。 有人知道如何在运行时重新加载文本文件吗? 每次我打开调试或运行应用程序时,如果我在外部编辑文本文件,它不会更新,如果我重新启动应用程序,它会更新。如何在运行时自动更新文件内容?
以下代码设置在计时器上,以使其在一段时间内重新读取文件,但如果在外部编辑,文件不会更新。
Future<List<String>> ReadFromFile() async
final data = await s.rootBundle.loadString('../../config.yml');
final mapData = loadYaml(data);
var test = json.encode(data);
var test2 = json.decode(test);
List<String> rawString = test2.split('\n');
return rawString;
另外,这是我的 pubspec:
dependencies:
flutter:
sdk: flutter
yaml: ^3.1.0
...
flutter:
uses-material-design: true
assets:
- "../../config.yml"
请注意,这是一个 Flutter Web 项目,可能无法使用智能手机解决方案。
【问题讨论】:
【参考方案1】:找到了我一直在寻找的东西。 只需使用这样的 HttpRequest:
它适用于每个文件!
var path = '../../config.yml';
HttpRequest.getString(path).then((String fileContents)
print(fileContents.characters);
).catchError((error)
print(error.toString());
);
图书馆也是dart:html
。
如果有的话,用它代替dart:io
。
Edit:文件中的新设置,仅在 Flutter 生成的新文件(在 Flutter 项目文件夹内)被修改时更新,而不是原始文件。但它仍然对我有用。总比没有好。
祝大家好运:D
【讨论】:
以上是关于Flutter Web - 外部编辑时文件不更新的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Flutter Web 更新 pub 包 webdev
Flutter - setState 不更新内部有状态小部件
为啥我在flutter_web中更新HtmlView时得到_state!= _PlatformViewState.disposed不是真正的异常?