Flutter开发中MyHomePage构造函数空安全与key参数报错咨询
Flutter 构造函数编译错误修复方案
错误原因及修复方法
- 针对「参数'title'的类型为'String',不能为null」错误:
这是Dart空安全的强制校验规则,非可空类型的可选命名参数默认隐式值为null,不符合类型约束。你有三种修复方案可选:- 给
title参数加required修饰符,强制调用方必须传值(你当前代码已经传了title参数,选这个最适配) - 给
title设置默认值,比如this.title = '默认标题' - 将
title的类型改为可空类型String?,后续使用时做判空处理
- 给
- 针对「未找到Getter 'key'」错误:
你的构造函数第一个参数只声明了Key类型,漏掉了参数名key,同时要给Key加可空标记?适配空安全,补全为Key? key即可。
另外注意你代码中return MaterialApp末尾多了一个多余的反引号,需要删除否则会触发语法错误。
修复后完整代码
import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Hello World Demo Application', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(title: 'Home page'), ); } } class MyHomePage extends StatelessWidget { const MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(this.title), ), body: Center( child: Text( 'Hello World', ) ), ); } }
内容的提问来源于stack exchange,提问作者Lalit Joshi
相关产品推荐
相关产品推荐

