Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 无法在颤振中使用构造函数将值从一个屏幕传递到另一个屏幕_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

Flutter 无法在颤振中使用构造函数将值从一个屏幕传递到另一个屏幕

Flutter 无法在颤振中使用构造函数将值从一个屏幕传递到另一个屏幕,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,我有一个有状态的小部件类,它有一个带有一个参数的构造函数,该参数用于传递文档ID。每当调用该类时,该文档ID将作为参数传递 我需要将此参数作为CollectionReference对象的DocumentID进行传递,但是当我尝试这样做时,会出现以下错误 class PersonPage extends StatefulWidget { @override _PersonPageState createState() => _PersonPageState(); } class _

我有一个有状态的小部件类,它有一个带有一个参数的构造函数,该参数用于传递文档ID。每当调用该类时,该文档ID将作为参数传递

我需要将此参数作为CollectionReference对象的DocumentID进行传递,但是当我尝试这样做时,会出现以下错误

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);

.
.
.