Flutter中Map特定值无法访问的问题排查及解决方法
Flutter中Map取值错误导致输出整个Map的问题与解决方法
我在Flutter开发中遇到了无法访问Map中特定值的问题,反而会输出整个Map内容。经过排查找到原因后,现将问题与解决方法分享如下:
数据获取场景
我通过FirebaseFirestore获取数据并存储在listData对象中,相关代码如下:
@override void initState() { /*get data*/ getData(); userId = FirebaseAuth.instance.currentUser!.uid; super.initState(); } getData() async { try { if (widget.listId != null) { var userSnap = await FirebaseFirestore.instance .collection('Lists') .doc(widget.listId) .get(); setState(() { listData = userSnap.data()!; _isloaded = true; }); } } catch (e) { print(e.toString()); } } var userId;//the user visiting the page var listData = {}; bool _isloaded =false;
错误的取值写法及结果
错误的取值代码:
Text( "$listData['Title']", ),
此时输出结果为:
{uid: 8qqfIvsJ5fbkdOEeyrqiunYCBw52, Description: , Cover: , ListID: c79697b0-296e-11ed-8a73-b9da6639ae48, Access: true, Title: K, Tags: []}['Title']
解决方法
去掉字符串插值的引号,直接取值:
Text( listData['Title'], ),
此时可正常输出特定值:
K
内容的提问来源于stack exchange,提问作者Shatha
相关产品推荐
相关产品推荐

