Flutter Class 属性(基础)
Flutter Class Properties (basics)
如何在 flutter 中将属性传递给小部件 class。
这是一个基本的class
class ToolbarToggle extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text(label);
}}
我希望能够调用它
ToolbarToggle(label: 'a label')
初级问题见谅
class ToolbarToggle extends StatelessWidget {
final String? label;
const ToolbarToggle({this.label, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Text(label ?? 'label is null');
}}
像这样,你可以传递属性,
建议使用 const
构造函数和 key
参数(以唯一标识 incase)
首先声明一个标签属性,像这样:
class ToolbarToggle extends StatelessWidget {
final String label;
@override
Widget build(BuildContext context) {
return Text(label);
}
}
final
表示该值是不可变的,您应该将它添加到 StatelessWidget 上的每个 属性。
现在我们需要声明一个构造函数,这是我们如何做的:
ToolbarToggle(this.label);
这意味着当创建一个ToolbarToggle时,我们可以这样做:ToolbarToggle('some label');
。为了使参数命名,我们需要像这样声明构造函数:
ToolbarToggle({this.label});
现在可以调用 ToolbarToggle(label: 'my label');
。但这会报错,因为调用构造函数时可能实际上没有传递任何值。要解决此问题,您应该将其设为必需参数,或为其指定默认值:
ToolbarToggle({required this.label});
ToolbarToggle({this.label=''});
这是最终的 class 代码:
class ToolbarToggle extends StatelessWidget {
ToolbarToggle({required this.label});
final String label;
@override
Widget build(BuildContext context) {
return Text(label);
}
}
您错过了使用 label
class ToolbarToggle extends StatelessWidget {
final String label;
ToolbarToggle({required this.label});
@override
Widget build(BuildContext context) {
return Text(label);
}}
如何在 flutter 中将属性传递给小部件 class。
这是一个基本的class
class ToolbarToggle extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text(label);
}}
我希望能够调用它
ToolbarToggle(label: 'a label')
初级问题见谅
class ToolbarToggle extends StatelessWidget {
final String? label;
const ToolbarToggle({this.label, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Text(label ?? 'label is null');
}}
像这样,你可以传递属性,
建议使用 const
构造函数和 key
参数(以唯一标识 incase)
首先声明一个标签属性,像这样:
class ToolbarToggle extends StatelessWidget {
final String label;
@override
Widget build(BuildContext context) {
return Text(label);
}
}
final
表示该值是不可变的,您应该将它添加到 StatelessWidget 上的每个 属性。
现在我们需要声明一个构造函数,这是我们如何做的:
ToolbarToggle(this.label);
这意味着当创建一个ToolbarToggle时,我们可以这样做:ToolbarToggle('some label');
。为了使参数命名,我们需要像这样声明构造函数:
ToolbarToggle({this.label});
现在可以调用 ToolbarToggle(label: 'my label');
。但这会报错,因为调用构造函数时可能实际上没有传递任何值。要解决此问题,您应该将其设为必需参数,或为其指定默认值:
ToolbarToggle({required this.label});
ToolbarToggle({this.label=''});
这是最终的 class 代码:
class ToolbarToggle extends StatelessWidget {
ToolbarToggle({required this.label});
final String label;
@override
Widget build(BuildContext context) {
return Text(label);
}
}
您错过了使用 label
class ToolbarToggle extends StatelessWidget {
final String label;
ToolbarToggle({required this.label});
@override
Widget build(BuildContext context) {
return Text(label);
}}