在Flutter中开始编程时,我试图创建一个返回FireBase数据的简单视图
我在字符串“data”中传递了两个屏幕之间的值,但当我试图将其添加到我的firebase查询时,我得到了以下消息:
无法在初始值设定项中访问示例成员“data”。尝试用不同的expressionDart(implicit_this_reference_in_initializer)替换对示例成员的引用
当我用引号之间的值替换它时,我没有得到这个错误消息:
工作:
.where('Description', isEqualTo: 'ProductABC')
不工作:
.where('Description', isEqualTo: data)
你能帮我吗?
请在代码行下面找到
class Itemscreen extends StatefulWidget {
String data;
Itemscreen({this.data});
@override
_ItemscreenState createState() => _ItemscreenState(data);
}
class _ItemscreenState extends State<Itemscreen> {
String data;
_ItemscreenState(this.data);
FirebaseFirestore firestore = FirebaseFirestore.instance;
final Stream<QuerySnapshot> _itemlist = FirebaseFirestore.instance
.collection('ItemList')
.where('Description', isEqualTo: data)
.snapshots();
谢谢你的帮助:)
2条答案
按热度按时间qvsjd97n1#
正如错误消息所说,不能在对象的初始化块中使用
data
(或任何字段)。你可能想在构造函数/初始化器中创建它,像这样:
参见:What is the difference between constructor and initializer list in Dart?
rsaldnfx2#
将.trim()添加到变量数据。trim()