flutter - “对象?”类型的值 不能分配给“ProductDetailsArguments”类型的变量
问题描述
我试图从我制作的列表中获取评级,并在我尝试获取评级以应用它时提出一个论点,所以我制作了一个 ModalRoute 来尝试获取它,但我收到了一个错误。
class ProductDetails extends StatelessWidget {
static String routeName = "/Product_details";
const ProductDetails({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final ProductDetailsArguments arguments = ModalRoute.of(context)!.settings.arguments;
return Scaffold(
backgroundColor: Color(0XFFF5F6F9),
appBar: CustomAppBar(arguments.product.rating),
body: Body(),
);
}
}
class ProductDetailsArguments {
final Product product;
ProductDetailsArguments({required this.product});
}
List<Product> demoProducts = [
Product(
id: 1,
images: [
"assets/images/mine.png",
"assets/images/mine.png",
"assets/images/mine.png",
"assets/images/mine.png",
],
colors: [
Color(0xFFF6625E),
Color(0xFF836DB8),
Color(0xFFDECB9C),
Colors.white,
],
title: "Wireless Controller for PS4™",
price: 64.99,
description: description,
rating: 4.8,
isFavourite: true,
isPopular: true,
),
解决方案
代替:
final ProductDetailsArguments arguments = ModalRoute.of(context)!.settings.arguments;
尝试:
final ProductDetailsArguments arguments = ModalRoute.of(context)!.settings.arguments as ProductDetailsArguments;
推荐阅读
- ios - Swift 远程推送通知,我如何真正触发它们被发送?
- pytorch - Pytorch:张量 a (24) 的大小必须与非单维 3 的张量 b (48) 的大小相匹配
- python - 使用 BERT 提取产品特征
- html - 如何使用 jquery 覆盖禁用输入字段的背景颜色
- python - 删除列表中不符合条件的单词
- android - 如何重置 LiveData
当 LiveData 在 Android Studio 中的双向数据绑定中更改了吗? - angular - 未捕获(承诺):TypeError:您在预期流的位置提供了“未定义”
- emacs - Projectile - 使用 .projectile 而不是 .gitignore 从 projectile-find-file 中排除文件
- python - 如何搜索字符串+IP地址并在找到时打印
- r - 在安装“getSpatialData”包时,我得到输入一个或多个数字,或者一个空行来跳过更新:如何处理这个?