Flutter 无法在颤振中使用构造函数将值从一个屏幕传递到另一个屏幕
我有一个有状态的小部件类,它有一个带有一个参数的构造函数,该参数用于传递文档ID。每当调用该类时,该文档ID将作为参数传递 我需要将此参数作为CollectionReference对象的DocumentID进行传递,但是当我尝试这样做时,会出现以下错误Flutter 无法在颤振中使用构造函数将值从一个屏幕传递到另一个屏幕,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,我有一个有状态的小部件类,它有一个带有一个参数的构造函数,该参数用于传递文档ID。每当调用该类时,该文档ID将作为参数传递 我需要将此参数作为CollectionReference对象的DocumentID进行传递,但是当我尝试这样做时,会出现以下错误 class PersonPage extends StatefulWidget { @override _PersonPageState createState() => _PersonPageState(); } class _
class PersonPage extends StatefulWidget {
@override
_PersonPageState createState() => _PersonPageState();
}
class _PersonPageState extends State<PersonPage>
with SingleTickerProviderStateMixin {
String personID;
_PersonPageState({this.personID});
var personDetailsCollection = FirebaseFirestore.instance
.collection('person')
.doc(personID)
.collection('details')
.orderBy('recordID', descending: false);
.
.
.
我对编程相当陌生,不确定到底是什么导致了这个问题
非常感谢,如果有人能帮我的话。提前谢谢
新错误
现在,在流生成器中得到一个不同的错误。请尝试将名称更正为现有getter的名称,或定义名为“personDetailsCollection”的getter或字段。流:personDetails.snapshots,^^^^^^^^^^^^^^^^^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^。相反,您应该从PersonPage构造函数获得它,并且可以从如下状态访问它:widget.perosnID
第一步是修复复制/粘贴错误,因为构造函数应该被称为_PersonPageState,而不是_CoursePageState。然后,您需要在小部件中实际填充该参数,并将您的逻辑移动到构造函数中。感谢@nvoigt更正错误,此错误已消失。问题是什么?我已按照您的建议在更新代码后添加了最新错误,请查看相关帮助。提前谢谢。
Performing hot reload...
Syncing files to device Android SDK built for x86...
lib/screens/person_home.dart:30:12: Error: Can't access 'this' in a field initializer to read 'personID'.
.doc(personID)
^^^^^^^^
class PersonPage extends StatefulWidget {
PersonPage(this.personID);
String personID;
@override
_PersonPageState createState() => _PersonPageState();
}
class _PersonPageState extends State<PersonPage>
with SingleTickerProviderStateMixin {
var personDetailsCollection = FirebaseFirestore.instance
.collection('person')
.doc(widget.personID)
.collection('details')
.orderBy('recordID', descending: false);
.
.
.