Flutter-'不能无条件访问属性'设置',因为接收器可以是'空''
无法无条件访问属性“设置”,因为接收器可以为“空”,该怎么办我的代码:`import 'package:flutter/material.dart';
class DressDetailsScreen extends StatelessWidget {
static const routeName = '/DressDetailsScreen';
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments ;
return Scaffold(
appBar: AppBar(
title: Text('details'),
),
);
}
}`
这是它的显示方式和我的代码
回答
只需使用
final routeArgs = ModalRoute.of(context)!.settings.arguments;
自从 dart 中的空安全性和可空类型的引入以来,您无法直接访问可以为空的内容的属性。
在这里,您ModalRoute.of(context)可能是一个空值,这就是为什么您需要使用bang运算符 ( !) 来访问settingsfrom ModalRoute.of(context)。
什么是bang运营商确实是一个空值后使用它,你保证dart该值肯定不会是空的。
但很明显,这会引发运行时问题,以防您的值实际上为空,因此请使用 case。
更多关于空安全