【问题标题】:FlutterSecureStorage issue when getting value获取价值时出现 FlutterSecureStorage 问题
【发布时间】:2020-08-20 22:02:49
【问题描述】:

我只是将字符串值保存在 FlutterSecureStorage 中并在其他页面上获取它的问题是它在其他页面上打印值但显示错误

我保存字符串的第一页

  if(data['access_token'].length > 2) {
    final storage = new FlutterSecureStorage();
    await storage.write(key: 'token', value: data['access_token']);

    Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => MyStatefulWidget()),
    );
  }

我得到它的第二页

class _EventsState extends State<Events> {

  @override
  initState() async {
    // TODO: implement initState
    final storage = new FlutterSecureStorage();
    String value = await storage.read(key: 'token');
    print(value);

    super.initState();
  }
}

错误是

_EventsState.initState() returned a Future.

还附上整个错误

【问题讨论】:

    标签: flutter async-await future


    【解决方案1】:

    state.initState() 必须是没有 async 关键字的 void 方法

    这就是错误消息的字面意思,而且是正确的。

    你不能在你的initState 方法中做你现在做的事情。您需要找到一种方法来保存您从 storage.read 获得的 Future 并等待它在其他地方完成。

    很可能使用FutureBuilder 是您的最佳选择。

    What is a Future and how do I use it?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 2021-01-05
      相关资源
      最近更新 更多