如何在Dart文件间访问值?Flutter组件传参遇空值问题求助
解决Flutter中Firestore文档ID传递到Comment组件为空的问题
核心问题:变量名拼写错误
你在then回调里给comment组件传参用的是docid,但实际存储文档ID的变量是doc_id,变量名拼写不一致导致传递了空值。修正后的代码
把传参的变量名改成和存储ID的变量一致:await FirebaseFirestore.instance .collection('blogs') .add({ 'title': titleController.text, }).then((value) { doc_id = value.id; // 修正变量名:docid → doc_id comment(postid: doc_id); successAlert(context); }).catchError((error) => errorAlert(context));更直观的写法(推荐)
既然已经用了await,可以去掉then回调,让代码逻辑更清晰:try { final docRef = await FirebaseFirestore.instance .collection('blogs') .add({'title': titleController.text}); doc_id = docRef.id; // 正确传递文档ID comment(postid: doc_id); successAlert(context); } catch (error) { errorAlert(context); }额外注意事项
确保comment组件被正确添加到Widget树中(比如通过Navigator.push跳转到该组件页面,或者作为当前页面的子Widget渲染),如果只是创建了组件对象但没有显示,即使传对值也看不到效果。
内容的提问来源于stack exchange,提问作者Devika
相关产品推荐
相关产品推荐

