Flutter鸿蒙版本机动使用方法间的回调处置惩罚复杂化的逻辑 ...

诗林  金牌会员 | 2024-10-19 18:30:42 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 516|帖子 516|积分 1548

目录

写在前面
示例代码
main.dart:
one.dart:
代码剖析
1. 主入口 main 函数
2. MyApp 类
3. CallbackExample 类
4. onok 函数
5. one 函数
写在后面


写在前面

在 Flutter 开发中,机动使用函数之间的回调带来了多种利益,包括进步可重用性、简化异步编程、加强解耦计划以及提升用户体验。回调不仅使代码更易于理解和维护,还使得处置惩罚复杂逻辑变得简朴且高效。因此,掌握回调函数的使用是 Flutter 开发者的紧张技能。
示例代码

以下是我们将要讨论的完备代码:
main.dart:

  1. import 'package:flutter/material.dart';
  2. import 'one.dart';
  3. void main() {
  4.   runApp(MyApp());
  5. }
  6. class MyApp extends StatelessWidget {
  7.   @override
  8.   Widget build(BuildContext context) {
  9.     return MaterialApp(
  10.       title: 'Custom Callback Example',
  11.       home: CallbackExample(),
  12.     );
  13.   }
  14. }
  15. var age = "18";
  16. class CallbackExample extends StatelessWidget {
  17.   @override
  18.   Widget build(BuildContext context) {
  19.     return Scaffold(
  20.       appBar: AppBar(
  21.         title: Text('Custom Callback Example'),
  22.       ),
  23.       body: Center(
  24.         child: ElevatedButton(
  25.           onPressed: () {
  26.             onok();
  27.           },
  28.           child: Text('开始任务'),
  29.         ),
  30.       ),
  31.     );
  32.   }
  33. }
  34. onok() {
  35.   one(123456789, "XIAOLI", (success) {
  36.     if(success == true){
  37.       print("age=$age");
  38.     }else if(success == false){
  39.       print("one函数回调false的逻辑");
  40.     }
  41.   });
  42. }
复制代码
one.dart:

  1. Future<void> one(int? ID, String? name,Function(bool) callback) async {
  2.   Map<String,dynamic>List = {
  3.     'ID':ID,
  4.     'name':name
  5.   };
  6.   var num = List.length;
  7.   if(num!=0){
  8.     callback(true);
  9.   }
  10. }
复制代码
代码剖析

1. 主入口 main 函数

  1. void main() {
  2.   runApp(MyApp());
  3. }
复制代码
main 函数是 Flutter 应用的入口点,它调用 runApp 函数来启动应用。这里我们传入一个 MyApp 实例。
2. MyApp 类

  1. class MyApp extends StatelessWidget {
  2.   @override
  3.   Widget build(BuildContext context) {
  4.     return MaterialApp(
  5.       title: 'Custom Callback Example',
  6.       home: CallbackExample(),
  7.     );
  8.   }
  9. }
复制代码
MyApp 是应用的根组件,返回一个 MaterialApp,它设置了应用的标题和主页。在这个例子中,主页是 CallbackExample。
3. CallbackExample 类

  1. class CallbackExample extends StatelessWidget {
  2.   @override
  3.   Widget build(BuildContext context) {
  4.     return Scaffold(
  5.       appBar: AppBar(
  6.         title: Text('Custom Callback Example'),
  7.       ),
  8.       body: Center(
  9.         child: ElevatedButton(
  10.           onPressed: () {
  11.             onok();
  12.           },
  13.           child: Text('开始任务'),
  14.         ),
  15.       ),
  16.     );
  17.   }
  18. }
复制代码
CallbackExample 是一个无状态组件,其中包含一个 ElevatedButton 按钮。当用户点击按钮时,将调用 onok 函数。
4. onok 函数

  1. void onok() {
  2.   one(123456789, "XIAOLI", (success) {
  3.     if (success == true) {
  4.       print("age=$age");
  5.     } else if (success == false) {
  6.       print("one函数回调false的逻辑");
  7.     }
  8.   });
  9. }
复制代码
onok 函数调用 one 函数,传入三个参数:一个 ID(123456789)、一个 name("XIAOLI")以及一个回调函数。回调函数担当一个布尔值 success,用于判断操作是否成功。


  • 如果 success 为 true,打印 age 的值。
  • 如果 success 为 false,打印一条失败的逻辑。
5. one 函数

  1. Future<void> one(int? ID, String? name, Function(bool) callback) async {
  2.   Map<String, dynamic> list = {
  3.     'ID': ID,
  4.     'name': name
  5.   };
  6.   var num = list.length;
  7.   // 如果数据不为空,则调用回调函数并返回成功状态
  8.   if (num != 0) {
  9.     callback(true);
  10.   } else {
  11.     callback(false);
  12.   }
  13. }
复制代码
one 函数模仿了一个异步操作,它担当三个参数:ID、name 和一个回调函数 callback。


  • 使用 Map 将 ID 和 name 存储为键值对。
  • 计算 list 的长度,如果不为0,调用回调函数并传入 true;否则传入 false。
写在后面

通过这个简朴的示例,我们展示了怎样在 Flutter 中实现函数调用和回调的根本使用。回调函数是处置惩罚异步操作的有效方式,它答应我们在操作完成后执行特定的逻辑。
这种模式非常得当在网络请求、文件处置惩罚或其他需要异步操作的场景中使用。通过使用回调,我们能够在操作完成后获取效果,并根据效果做出相应的处置惩罚。这种机动性使得代码更具可读性和可维护性。
在实际应用中,你可以根据需要修改回调函数,以实现更复杂的逻辑。这种方式可以大大加强你的 Flutter 应用的相应能力和用户体验。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表