【问题标题】:Flutter access variable in other dart file其他 dart 文件中的颤振访问变量
【发布时间】:2020-07-17 06:11:36
【问题描述】:

我想访问另一个 .dart 文件中的 HeaderContainer 对象的实例。该对象在运行runApp(); 之前在启动期间被实例化。我在main.dart 的开头有WidgetsFlutterBinding.ensureInitialized();

我的简化 main.dart:

class HeaderContainer {
  Header header;
  HeaderContainer({this.header});
  Header getHeader() {
    return header;
  }
}

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  Header header = new Header();
  HeaderContainer headercontainer = new HeaderContainer(header: toc);
  runApp(
    MaterialApp(
      home: MyTabs(),
    ),
  );
} 

我简化的其他 Dart 文件:

class _MeasureListState extends State<MeasureList> {
  @override

  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.grey[300],
      body: Column(
          children: getWidgetList(),),
    );
  }
}

List<Widget> getWidgetList() {
Header toc = headercontainer.getHeader();
return toc.results.map((result) {
return MeasCard(result: result);
}).toList()

}

但是当我尝试访问该对象时,我总是收到错误The name 'header' isn't defined。我该如何解决?

【问题讨论】:

  • 请分享一个简化的代码
  • 好的,明白了。希望你明白我想在这里做什么。

标签: flutter dart


【解决方案1】:

在标头对象的声明中使用静态关键字

静态标题 header = new Header();

然后使用 HeaderContainer.header 或 classname.header 访问

【讨论】:

    【解决方案2】:

    将 headerContainer 变量设为静态 所以你可以在任何地方访问它

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 2017-09-15
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多