【问题标题】:The named parameter 'semesters' is required, but there's no corresponding argument命名参数 \'semesters\' 是必需的,但没有相应的参数
【发布时间】:2022-12-04 19:44:45
【问题描述】:

主.dart `

void main() {
  runApp(
    Provider(
      create: (_) => LoginService(),
      child: MaterialApp(
        theme: ThemeData(fontFamily: 'Roboto'),
        debugShowCheckedModeBanner: false,
        routes: {
          '/': (context) => SplashPage(goToPage: WelcomePage(), duration: 3),
          '/welcomepage' : (context) => WelcomePage(),
          '/categorylistpage' : (context) => CategoryListPage(),
          '/selectedcategorypage' : (context) => SelectedCategoryPage(),
        }
      ),
    )
  );
}

`

selectedcategorypage.dart `

class SelectedCategoryPage extends StatelessWidget {
  final MyCategory? selectedCategory;
  final List<MySemester> semesters;
  const SelectedCategoryPage({
    Key? key,
    this.selectedCategory,
    required this.semesters,
  }) : super(key: key);

`

我尝试进行路由但是对于 selectedcategory 我有 required this.semesters 我不需要它但没有它我得到这个错误:参数'semesters'不能有'null'的值因为它的类型,但隐式默认值为“null”。我不知道如何绕过它

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您可以为 semesters 参数提供默认值,这样就不需要它了。您可以通过在参数类型后使用 = 运算符并提供默认值来执行此操作,如下所示:

    class SelectedCategoryPage extends StatelessWidget {
      final MyCategory? selectedCategory;
      final List<MySemester> semesters = [];
      const SelectedCategoryPage({
        Key? key,
        this.selectedCategory,
        required this.semesters,
      }) : super(key: key);
    }
    

    现在,如果未提供 semesters 参数,它将默认为一个空列表。如果您希望允许该值为 null 并在您的代码中处理这种情况,您也可以使用默认值 null。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-31
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      相关资源
      最近更新 更多