dart 在一个屏幕中创建一个列表,然后从另一个屏幕访问它,并将列表作为参数传递给flutter

wlzqhblo  于 2023-09-28  发布在  Flutter
关注(0)|答案(1)|浏览(118)

我有2个屏幕,我正在与一个Flutter应用程序。
屏幕1:此屏幕从基于邮政编码的API获取属性数据。在这个屏幕中,我创建了一个标记列表,这些标记将在Google Maps API中使用,以便在屏幕2上的地址处放置标记。所以现在,标记列表被创建并且仅驻留在屏幕1中。
屏幕2:在此屏幕中,我将检索标记列表,并使用它们传递给Google Maps API,以显示在屏幕2中的Map上。
现在,我使用应用程序底部的NavigationBar从屏幕1导航到屏幕2。
当我导航到屏幕2时,我希望能够访问在屏幕1中创建的标记列表。做这件事的最好方法是什么?我的意思是,做这件事的最佳实践方式是什么?我是否应该将标记列表设置为全局?
这是一个个人项目,我正在做的学习Flutter,所以应用程序真的没有有用的应用程序以外,我学习Flutter。

ffscu2ro

ffscu2ro1#

你可以这样做:
在屏幕1中,当您导航到屏幕2时,将标记列表作为构造函数参数传递到屏幕2:

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => Screen2(markers: yourListOfMarkers),
  ),
);

在屏幕2中,创建一个构造函数,该构造函数接受标记列表作为

class Screen2 extends StatelessWidget {
  final List<Marker> markers;

  Screen2({required this.markers});

  @override
  Widget build(BuildContext context) {
    // Use this.markers to access the list of markers in Screen 2.
    // You can now use it with Google Maps API or any other purpose.
    return Scaffold(
      appBar: AppBar(
        title: Text('Screen 2'),
      ),
      body: // Your content here,
    );
  }
}

相关问题