其他Dart文件中的Flutter访问变量

时间:2020-04-05 07:52:17

标签: flutter dart

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

我的简化版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。我该如何解决?

2 个答案:

答案 0 :(得分:1)

将headerContainer变量设为静态 这样您就可以在任何地方访问它

答案 1 :(得分:1)

在标头对象声明中使用static关键字

静态标头标头= new Header();

然后使用HeaderContainer.header或classname.header

进行访问