是否可以在颤动中不需要传递参数
is it possible to pass the parameter without required in flutter
是否可以在没有要求的情况下通过 this.title,我看过他们这样做的一些教程,但是当我尝试时它要求我将要求添加到 this.title。由于我的 2 屏幕不包含 appBar 标题,我想在不需要的情况下传递它。可能吗?
如果我将 required 添加到 this.title,我的代码可以正常工作。
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../logic/cubit/counter_cubit.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key, this.title}) : super(key: key);
final String title;
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
[SS of code][1]
标题必须是 required
,因为您已将其设置为 不可 为空。如果标题是可选的,您可以将其设置为 nullable:
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key, this.title}) : super(key: key);
final String? title;
@override
State<HomeScreen> createState() => _HomeScreenState();
}
但是,现在您需要处理 build
函数中可能没有标题的事实:
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title ?? "NO TITLE!?!"),
),
);
}
}
显然你不想要“没有标题!?!”出现在你的标题中,但由于我不知道你想要什么,所以你必须更改那部分。
除了@nvoigt 给出的答案之外,您还可以提供默认值而不是使 title
可为空:
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key, this.title = 'Home Screen'}) : super(key: key);
final String title;
@override
State<HomeScreen> createState() => _HomeScreenState();
}
这样,您不必提供标题,如果您不提供,它将使用 Home Screen
作为标题。
是否可以在没有要求的情况下通过 this.title,我看过他们这样做的一些教程,但是当我尝试时它要求我将要求添加到 this.title。由于我的 2 屏幕不包含 appBar 标题,我想在不需要的情况下传递它。可能吗?
如果我将 required 添加到 this.title,我的代码可以正常工作。
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../logic/cubit/counter_cubit.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key, this.title}) : super(key: key);
final String title;
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
[SS of code][1]
标题必须是 required
,因为您已将其设置为 不可 为空。如果标题是可选的,您可以将其设置为 nullable:
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key, this.title}) : super(key: key);
final String? title;
@override
State<HomeScreen> createState() => _HomeScreenState();
}
但是,现在您需要处理 build
函数中可能没有标题的事实:
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title ?? "NO TITLE!?!"),
),
);
}
}
显然你不想要“没有标题!?!”出现在你的标题中,但由于我不知道你想要什么,所以你必须更改那部分。
除了@nvoigt 给出的答案之外,您还可以提供默认值而不是使 title
可为空:
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key, this.title = 'Home Screen'}) : super(key: key);
final String title;
@override
State<HomeScreen> createState() => _HomeScreenState();
}
这样,您不必提供标题,如果您不提供,它将使用 Home Screen
作为标题。