颤振底部导航栏静态问题

时间:2020-03-19 08:48:29

标签: flutter

我正在使用Flutter,遇到了一个问题,“初始化器中只能访问静态成员”。

我想将字符串从一个类传递到另一类,这是我尝试传递的UID。我找到了一种方法来做,但是唯一有问题的是底部导航栏var页面列表。这是代码:

class MyStatefulWidget extends StatefulWidget {
  MyStatefulWidget({Key key, this.uid}) : super(key: key);
  final String uid;
  @override
  _ProfilePage createState() => _ProfilePage(uid);
}

class _ProfilePage extends State<MyStatefulWidget> {

  final String uid;
  _ProfilePage(this.uid);
  @override
  void initState() {
     super.initState();
  }

  int i = 2;
  var pages = [
    new LearningRoom(),
    new BrandRanking(),
    new Profile(uid), //Error is here with this
    new FabricCalculator(),
    new LookBook()
  ];

请问有人可以提供一些解决此问题的帮助吗?我已经环顾了大约一个小时,却找不到任何有帮助的东西,我尝试将其转换为方法等。

谢谢, 布拉德

2 个答案:

答案 0 :(得分:1)

尝试初始化 initState 方法

中的页面
class _ProfilePage extends State<MyStatefulWidget> {

  final String uid;
  var pages;
  _ProfilePage(this.uid);

  @override
  void initState() {
     super.initState();
     pages = [
      new LearningRoom(),
      new BrandRanking(),
      new Profile(uid), //Error is here with this
      new FabricCalculator(),
      new LookBook()
  ];
  }


答案 1 :(得分:1)

您需要将pages的创建移到initState()中。 也不要在_ProfilePage中使用新变量。您可以使用uid来访问widget.uid

class MyStatefulWidget extends StatefulWidget {
  MyStatefulWidget({Key key, this.uid}) : super(key: key);
  final String uid;
  @override
  _ProfilePage createState() => _ProfilePage(uid);
}

class _ProfilePage extends State<MyStatefulWidget> {

  @override
  void initState() {
    int i = 2;
    var pages = [
      LearningRoom(),
      BrandRanking(),
      Profile(widget.uid),
      FabricCalculator(),
      LookBook()
    ];
    super.initState();
  }

注意:Dart 2不需要new关键字