我需要从Flutter的“共享首选项”小部件中获取一个URL,并将其插入Image.network小部件中。这是我创建的类(class);

class GetSharedPrefs() {
  static getCurrentNameSF() async {
    String currentname;
    SharedPreferences prefs = await SharedPreferences.getInstance();
    currentname = prefs.getString("currentname");
    print(currentname);
  }
}
我尝试将方法转换为一个名为“spavatar”的变量,然后将其插入到构建中。
String spavatar = GetSharedPrefs.getCurrentNameSF().toString();
插入
 icon: Image.network(
                spavatar,
              ),
但这会引发以下错误:
I/flutter (24368): The following _TypeError was thrown attaching to the render tree:
I/flutter (24368): type 'Future<dynamic>' is not a subtype of type 'String'
那么如何将函数的结果放入需要URL的Image.network小部件中?还是有另一种方法我应该这样做?

最佳答案

该函数必须返回一个value,并且作为异步方法,它必须是Future<type>:

class GetSharedPrefs {
  static Future<String> getCurrentNameSF() async {
    String currentname;
    SharedPreferences prefs = await SharedPreferences.getInstance();
    currentname = prefs.getString("currentname");
    print(currentname);
    return currentname;
  }
}
现在致电:
String spavatar = await GetSharedPrefs.getCurrentNameSF();

关于flutter - Flutter/Dart:从“共享首选项”小部件中获取URL,以在Image.Network小部件中使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62791875/

10-09 13:28