首页 > 解决方案 > 如何将 Text Asset 的值赋给 String 并在 Text() 中显示?

问题描述

我想使用函数修改文本资产(.txt 文件)中的数据并将其显示在Text()小部件中。myFunction将datatypeString作为参数并返回 datatype String

我已经阅读了文档。从 Image 加载资产,这没有用。我也尝试过Suragch's Answer 的解决方案。

这可能是我应该使用的情况,FutureBuilder但我无法理解如何让它在这里工作(我是新手)。我将使用另一个函数来修改文件中的数据,然后显示。

这是我尝试过的事情之一:

Widget build(BuildContext context) {
  Future<String> aloadAsset(BuildContext context) async {
    return await DefaultAssetBundle.of(context).loadString('assets/help.txt');
  }

  String helps = myFunction(await aloadAsset(context));
  return Scaffold(
    body: Text(helps)
  );
}

将值分配await aloadAsset(context)给 String 时,出现以下错误:Unexpected text 'await'.&A value of type 'Future<String>' can't be assigned to a variable of type 'String'.

标签: androiddartflutter

解决方案


await关键字只能在async函数中使用。您可以在这里做的是:将小部件设置为StatefulWidget然后在状态类中:

String helps = "";

initState()方法中:

aloadAsset();

并将您的功能更改为:

aloadAsset() async {
    helps = myFunction(await rootBundle.loadString('assets/help.txt'));
    setState((){});
  }

不要忘记添加导入

import 'package:flutter/services.dart' show rootBundle;

推荐阅读