我对使用Widget函数和class(stf,stl)创建自定义小部件之间的良好实践感到困惑.

For the example about creating the custom widget with the 100 function:

class FieldCustomWidget {
  static Widget textField(...) {
    return ...;
  }

  static Widget idCardNumberField(...) {
    return ...;
  }

  static Widget phoneField(...) {
    return ...;
  }
}

For the example about creating the custom widget with the 100 (stf,stl):

class TextFieldCustomWidget  extends StatelessWidget {
  ...
  const TextFieldCustomWidget ({Key? key, ...}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ...;
  }
}
class IdCardNumberFieldCustomWidget  extends StatelessWidget {
  ...
  const IdCardNumberFieldCustomWidget ({Key? key, ...}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ...;
  }
}
class PhoneFieldCustomWidget  extends StatelessWidget {
  ...
  const PhoneFieldCustomWidget ({Key? key, ...}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ...;
  }
}

所有客户小部件都可以使用Widget函数或stl,因为我使用的是state management. 什么是好的实践? 如果你有其他办法,请告诉我.

推荐答案

一般来说,不要使用函数来创建小部件.如果你想知道更多关于这方面的细节,这里有一个讨论.

https://github.com/flutter/flutter/issues/19269

What is the difference between functions and classes to create reusable widgets?

如果您遵循的是函数式编程范例,则可以使用functional_widget包.

Flutter相关问答推荐

Android Studio中的Ffltter&;Couchbase:进程C:/Program Files/Git/bin/bash以非零退出值35结束

就像Flutter 中的头文件一样?

在VSCode中运行应用程序而不进行调试时,控制台仍显示为调试模式

将记录/元组用作SplayTreeMap中的键

在 flutter 吧蜂巢中拯救主题

请求已在 flutter 中发送到 django 服务器,并且已返回响应,但条件仍然为 false

如何在Flutter中将背景 colored颜色 更改为黑色?

使用 Flutter 显示/隐藏带有下拉抽屉动画的小部件

构建上下文不能跨异步间隙使用

要禁用按钮上的通知声音,请点击Flutter

Flutter 中的 Provider 不会在第一次构建 App 时返回

更改下拉按钮的背景 colored颜色 - flutter

Flutter/Riverpod 创建复杂对象的副本,其值在某处发生变化

如何在 flutter 的 onChanged(更改字符)处更改 TextField 边框 colored颜色 ?

在 Dart 中使用隔离时访问外部范围内的变量

我想在一个屏幕上有两个相同区域的列表视图,我该如何设置?

Show Snackbar above to showModalBottomSheet Flutter

在 Flame Forge2d 中射击子弹

无法将参数类型Future Function(String?)分配给参数类型void Function(NotificationResponse)?

如何使用列Flutter 中文本占用的空间来控制svg宽度