我是新手扑,下面是我的代码
homepage.dart
import’package:flutter / material.dart’;
import’。/product_page.dart’;
class Homepage扩展StatelessWidget { @override 小部件构建(…
您忘记在构建器函数中返回小部件
MaterialPageRoute(builder: (BuildContext context) { return ProductPage(productsMap[index]["title"], productsMap[index]["imageUrl"]); }));
或者如果您更喜欢使用lambda函数,语法将是:
MaterialPageRoute( builder: (BuildContext context) => ProductPage( productsMap[index]["title"], productsMap[index]["imageUrl"]), ),
移动产品地图 INITSTATE ()函数不在构造函数中
initState() { super.initState(); productsMap .add({"title": "Cappuccino", "imageUrl": "assets/cappuccino.jpg"}); productsMap.add( {"title": "Chocolate Cake", "imageUrl": "assets/chocolate_cake.jpg"}); productsMap .add({"title": "Chocolates", "imageUrl": "assets/chocolates.jpg"}); productsMap.add( {"title": "Hot Chocolate", "imageUrl": "assets/hot_chocolate.jpg"}); productsMap.add({"title": "Naougat", "imageUrl": "assets/nougat.jpg"}); productsMap.add( {"title": "White Chocolate", "imageUrl": "assets/white_chocolate.jpg"}); }
也是你的 Navigator.push
Navigator.push
Navigator.push( context, MaterialPageRoute( builder: (context) => ProductPage(productsMap[index]["title"], productsMap[index]["imageUrl"])), );
正如错误消息所示,您在路由构建器中没有返回任何内容。你错过了回复声明
Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) { return ProductPage(productsMap[index]["title"], // you miss return here! productsMap[index]["imageUrl"]); }));