dart 如何在移动和使用Navigator.of(context).pushReplacement时使页面名称可变?

5m1hhzi4  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(102)

我希望页面的名称改为一个变量,这样我就可以使用相同的代码一次,而不是写它一次以上
我尝试了这个代码,但它不工作Navigator.of(context).pushReplacement( MaterialPageRoute(builder: (context) => e.goPage) ));

List<Pages> page = [
    Pages(name: 'AnimalsSpelling', goPage: const AnimalsSpelling()),
    Pages(name: 'bodySpelling', goPage: const BodySpelling()),
  ];
 Navigator.of(context).pushReplacement(
                  MaterialPageRoute(builder: (context) => e.goPage) ));

我尝试了这段代码,但它不适用于路由pages.map( (e) => Navigator.of(context).pushNamed(RouteLearn(e.goPage).toString()));

xqk2d5yq

xqk2d5yq1#

对于在导航代码中使用页面名称的变量,尝试使用循环来遍历页面列表,并为每个页面创建一个按钮/链接,当单击时导航到相应的页面。

List<Pages> pages = [
  Pages(name: 'AnimalsSpelling', goPage: const AnimalsSpelling()),
  Pages(name: 'bodySpelling', goPage: const BodySpelling()),
];

// Create a loop to create a button/link for each page
for (var page in pages) {
  // Use the page name as the button/link text
  TextButton(
    onPressed: () {
      // Navigate to the page when the button/link is clicked
      Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => page.goPage),
      );
    },
    child: Text(page.name),
  );
}

相关问题