无法将共享首选项中的数据转换为Flutter中的列表

时间:2019-09-21 08:28:27

标签: flutter

我正在尝试在共享首选项中保存用户详细信息。并尝试从中生成一个二维码。

我已将共享首选项中的密钥分配为字符串列表,但是当我尝试返回字符串列表并将其分配给列表时,我可以将其发送给qr生成器函数,它将引发错误,< / p>

“类型'Future'不是类型'列表'的子类型”

我的代码如下

  _read() async {
    print("reading stored data");
    final prefs = await SharedPreferences.getInstance();
    // read
    final myStringList = prefs.getStringList('my_string_list_key') ?? [];
    print(myStringList);
    return myStringList;
  }

通话功能

 onPressed: () {
setState((){
var _user_details = new List(3);
_user_details = _read();
                      _dataString=_user_details[0]+"/n"+_user_details[1]+"/n"+_user_details[2];
print(_dataString);
_inputErrorText = null;
});
},

1 个答案:

答案 0 :(得分:0)

onPressed刷新之前,先在setState中进行异步调用

onPressed: () async {
  var _user_details = await _read();
  setState(() {
    // you might check _user_details is null or something here...
    _dataString = _user_details[0]+"/n"+_user_details[1]+"/n"+_user_details[2];
    print(_dataString);
    _inputErrorText = null;
  });
},

请注意,您应检查您的_user_details为null还是格式错误(例如长度<3)。