Flutter flatter中组件化小部件的良好实践

Flutter flatter中组件化小部件的良好实践,flutter,dart,Flutter,Dart,我正在构建一个带有Dart/Flutter的简单应用程序。我尝试从其他框架中应用一些概念(例如“组件”),最后提出一个问题,比如在这种情况下考虑什么好的实践。 到目前为止,这是我的家: import 'package:flutter/material.dart'; import 'package:image_recognition_poc/components/layout/app_bar.dart'; import 'package:image_recognition_poc/componen

我正在构建一个带有Dart/Flutter的简单应用程序。我尝试从其他框架中应用一些概念(例如“组件”),最后提出一个问题,比如在这种情况下考虑什么好的实践。 到目前为止,这是我的家:

import 'package:flutter/material.dart';
import 'package:image_recognition_poc/components/layout/app_bar.dart';
import 'package:image_recognition_poc/components/layout/drawer.dart';

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: Colors.teal[100],
        appBar: DefaultAppBar().build(context),
        drawer: DefaultDrawer().build(context),
        body: Container());
  }
}
由于Scaffold.appBar字段仅接受实现类
小部件的
PreferredSizeWidget
,因此我构建了默认appBar对象,如图所示
DefaultAppBar().build(context)

它是有效的,但我想知道这是一个好的实践,还是一个更好的方法来激活这个组件化


谢谢

您不需要将上下文传递给构建函数,这是一个框架作业。 你的应用程序栏应该实现PreferredSizeWidget

@override
 Size get preferredSize => const Size.fromHeight(kToolbarHeight);
看看这个问题:

@override
 Size get preferredSize => const Size.fromHeight(kToolbarHeight);