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页面状态在返回时不刷新

Flutter - setState 不更新内部有状态小部件

为啥我在flutter_web中更新HtmlView时得到_state!= _PlatformViewState.disposed不是真正的异常?

IBM Worklight 6.1 - 富页面编辑器在进行更改后不刷新

使用 Flutter Web 1.9 打开外部链接