library_private_types_in_public_api 和 StatefulWidget

2024-05-20

将 linter 升级到新版本后(flutter_lints: 2.0.1)在我的 pubspec 中 linter 启用此规则:公共 API 中的库私有类型 https://dart.dev/tools/linter-rules#library_private_types_in_public_api默认情况下。我不明白为什么。在我的应用程序项目中,有很多由以下扩展的小部件类StatefulWidget。国家级始终是私有的。Example https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html项目也以同样的方式进行。有人可以解释为什么这条规则有意义吗?

顺便说一句:我知道我可以禁用此规则。


我遇到了同样的问题,看来现在当你生成一个StatefulWidget而不是返回说_ExampleState in the createState它现在返回的方法State<Example>这可以避免返回私有类型。我最终将所有小部件更新为这种方法。

so

class Example extends StatefulWidget {
  const Example({Key? key}) : super(key: key);

  @override
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

可以重写为

class Example extends StatefulWidget {
  // you can also now use a super initializer for key 
  // if you are using dart 2.17
  const Example({super.key});

  // now returning State<Example>
  @override
  State<Example> createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

library_private_types_in_public_api 和 StatefulWidget 的相关文章

  • 如何使用 Flutter/Dart 根据选择将单个 Firestore 文档 ID 传递给另一个类?

    我正在尝试使用 flutter 设计一个功能 当用户选择旅行的缩略图时 它会将用户带到一个页面 其中包含他们选择的旅行的更多详细信息 我试图尽可能少地查询 Firestore 数据库 因此我试图从单个查询快照中获取文档 ID 并将其传递给
  • 禁用向下拖动以关闭 showModalBottomSheet

    如何在底部表单模态中禁用 转义向下拖动手势 以便用户可以在模态中进行交互而不会意外关闭模态 下面用实际的模态底部表进行了更新 return showModalBottomSheet context context builder Build
  • 更改 Flutter Web 应用程序中的屏幕尺寸

    我正在使用 Flutter 构建一个 Web 应用程序 但我想模仿 iPhone 屏幕视图 我知道调整窗口大小可以达到这种效果 但是有没有办法将所有内容包装在手机屏幕图形的框架中 或者更改 MaterialApp 的尺寸 使其包含在手机屏幕
  • Flutter:如何在 Web 视图中启用手势?

    我想在 Flutter 中通过捏合和张开来放大我的网页视图页面 我在网上做了一些研究 我在某处发现了这个 虽然 WebView Android 和 UIWebView iOS 内置了捏合和缩放功能 但它们需要 打开 在Android中 插件
  • 如何使用 Flutter (Dart) 在 android 13 (API 33) 上保存文件

    文件不仅仅是媒体文件 也可能是 pdf zip xls 等 API 33 上的外部存储权限被永久拒绝 所以 我们不能像这样的方法来保存 gt String path This is external storage path File pa
  • Gradle 在从网络下载工件时抛出错误。异常:Gradle 任务 assembleDebug 失败,退出代码 1

    我刚刚开始使用 flutter 进行应用程序开发 但甚至无法运行测试应用程序 这是控制台上出现的内容 Launching lib main dart on AOSP on IA Emulator in debug mode Running
  • 颤动中的单选按钮对齐

    我是颤振的新手 我想对齐单选按钮 即 无论文本是什么 单选按钮都应该按列对齐 我在用Column然后小部件Row其中的小部件但得到以下结果 代码在这里 Widget build BuildContext context return Con
  • Flutter firestore插件无法通过where和isEqualTo的组合来获取数据

    我在 Firestore 中有一个名为 trips 的集合 数据格式是这样的 我正在尝试使用下面的代码访问该集合的文档 第一种方式 try Firestore instance collection trips where createdB
  • 显示菜单位置 Flutter

    我有一个 GridView 小部件 其中包含一些用 GestureDetector 包裹的 GridTiles 当我长按它时 尝试显示一个菜单以删除 GridTile 一切都很好 除了我希望从我拥有的点开始显示该菜单点击的不是应用程序的顶部
  • 对于哪些 flutter 小部件我们需要使用 const?

    我了解的好处const并且小部件不会在状态更改时重建 但当您看到下面的代码时 仍然很明显它们是常量 我希望 flutter 自动处理它 或者 flutter 已经在处理它而我却没有意识到 This makes sense to me but
  • 忽略 C 中的返回值

    最近 我开始使用 lint 进行静态代码分析 我有时收到的警告之一就是关于这个问题 比方说 我有以下功能 uint32 t foo void 假设我故意忽略函数的返回值 为了使警告消失 可以写 void foo 我的问题是 编写这样的代码的
  • Dart:快照与 AOT

    我正在搜索很多关于这种伟大语言的信息 并找到了这个页面https github com dart lang sdk wiki Snapshots https github com dart lang sdk wiki Snapshots但它
  • Flutter:未捕获的 ReferenceError:firebase 未定义

    我在 Flutter Web 应用程序中使用 Firebase 服务 但在加载 Firebase 脚本时遇到问题 当我使用扑动时运行 d chrome我看到有错误的空白页面 重新加载页面后加载正常 当我进行 flutter build we
  • 尝试将 Flutter 应用上传到 ItunesConnect 时出现 UIWebView 错误

    我正在尝试将我的应用程序上传到应用程序商店 但是我不断收到错误消息 表明我的应用程序存在此问题 ITMS 90809 已弃用的 API 使用 不再接受使用 UIWebView 的新应用程序 相反 使用 WKWebView 可以提高安全性和可
  • 在 flutter 中使用 Cloud Firestore 创建无限列表

    我目前正在将 Cloud Firestore 与 Streambuilder 小部件一起使用 以便使用 Firestore 文档填充 ListView 小部件 new StreamBuilder
  • 快捷栏持续时间和高度

    我正在尝试展示一个小吃店 当我点击手势检测器后 这个小吃有两个按钮 问题是小吃栏出现几秒钟然后消失 所以我有两个问题 如何阻止小吃栏消失 直到用户采取行动并单击按钮 此外 小吃栏具有整个屏幕的高度 如何使其在屏幕底部具有特定高度 您可以使用
  • 如何在不需要打开应用程序的情况下显示对话框

    我正在寻找包或以任何方式显示弹出窗口 对话框或模式 而无需打开我的应用程序 例如 本地通知 但我不想使用本地通知进行自定义 flutter 中有类似的东西吗 在 Android 上 您可以使用使用 SYSTEM ALERT WINDOW 的
  • 由于 mapEventToState 不起作用而引起的 Flutter 块迁移

    我正在关注移民 https bloclibrary dev migration id packagebloc 1到新的块 8 0 0 我正在尝试删除映射事件到状态但我这样做有困难 你能帮我看看该怎么做吗 我已经在下面尝试过 但它不起作用 旧
  • 使用 Visual Studio Code 在 Flutter 上运行 Gradle 时出错

    我正在使用 Windows 10 Visual Studio Code 我尝试在编写代码后运行我的代码 这就是它之后向我展示的内容 在调试模式下在 TECNO Camon CX 上启动 lib main dart 运行 Gradle 时出错
  • Dart 是否支持 PHP,例如 $_SESSION(会话)?

    服务器端 Dart 是否支持像 PHP 中那样的会话

随机推荐