'Object?' 类型的值不能分配给 xxx 类型的变量

时间:2021-03-07 13:56:55

标签: flutter dart

我刚刚升级到 flutter 2.0。现在我收到这个错误

  case ABC.ROUTE:
            final AsssetTrasferArguments args = settings.arguments;
            return MaterialPageRoute(
              builder: (_) => ProxyProvider<Repo, AssetBloc>(
                update: (context, repository, assetBloc) =>
                    AssetBloc(repository: repository),
                dispose: (context, assetBloc) => assetBloc.dispose(),
                child: ABC(args),
              ),
            );
            break;

错误

A value of type 'Object?' can't be assigned to a variable of type 'AsssetTrasferArguments'.Try changing the type of the variable, or casting the right-hand type to 'AsssetTrasferArguments'"

2 个答案:

答案 0 :(得分:0)

就这样做

final args = settings.arguments;

您不必指定类型

答案 1 :(得分:0)

如果“AsssetTrasferArguments”是您创建的类,那么我认为最好创建一个构造函数,该构造函数接受一个对象并将其参数设置为类的属性。

例如: 如果你的班级有以下属性

int a;
int b;
int c;

并且您想使用数组设置它们的值,您最好创建一个执行以下操作的构造函数:

myclass.a = array[0];
myclass.b = array[1];
myclass.c = array[2];

希望这有帮助。