lqg 11 months ago
parent
commit
453e0b5867

+ 1 - 0
lib/main.dart

@@ -3,6 +3,7 @@ import 'package:get/get_navigation/src/root/get_material_app.dart';
 import 'package:get_demo/routes.dart';
 
 void main() {
+  WidgetsFlutterBinding.ensureInitialized();
   runApp(const MyApp());
 }
 

+ 1 - 3
lib/pages/home/home_binding.dart

@@ -4,8 +4,6 @@ import 'package:get_demo/pages/home/home_controller.dart';
 class HomeBinding extends Bindings {
   @override
   void dependencies() {
-    Get.lazyPut<HomeController>(
-      () => HomeController(),
-    );
+    Get.lazyPut(() => HomeController());
   }
 }

+ 4 - 4
lib/pages/home/home_controller.dart

@@ -1,20 +1,20 @@
 import 'package:get/get.dart';
 import 'package:get_demo/models/good_model.dart';
 import 'package:dio/dio.dart';
-import 'package:get_demo/pages/home/home_state.dart';
 import 'package:get_demo/routes.dart';
 
 class HomeController extends GetxController {
-  HomeState state = HomeState();
+  RxList<GoodsModel> goodsData = <GoodsModel>[].obs;
+  RxList<GoodsModel> likeList = <GoodsModel>[].obs;
 
   getData() async {
     final response = await Dio().get('https://jdmall.itying.com/api/pcate');
     final goodsList = GoodsListModel.fromJson(response.data);
-    state.goodsData.value = goodsList.result!;
+    goodsData.value = goodsList.result!;
   }
 
   toDetail(int index) {
-    Get.toNamed(Routes.second, arguments: state.goodsData[index]);
+    Get.toNamed(Routes.second, arguments: goodsData[index]);
   }
 
   @override

+ 0 - 7
lib/pages/home/home_state.dart

@@ -1,7 +0,0 @@
-import 'package:get/get.dart';
-import 'package:get_demo/models/good_model.dart';
-
-class HomeState {
-  RxList<GoodsModel> goodsData = <GoodsModel>[].obs;
-  RxList<GoodsModel> likeList = <GoodsModel>[].obs;
-}

+ 4 - 4
lib/pages/home/home_view.dart

@@ -14,15 +14,15 @@ class HomeView extends GetView<HomeController> {
       ),
       body: Obx(() {
         return ListView.builder(
-            itemCount: controller.state.goodsData.length,
+            itemCount: controller.goodsData.length,
             itemBuilder: (context, index) {
               return ListTile(
-                title: Text(controller.state.goodsData[index].title ?? ''),
+                title: Text(controller.goodsData[index].title ?? ''),
                 trailing: InkWell(onTap: () {
                   controller.toDetail(index);
                 }, child: Obx(() {
-                  return Text(controller.state.likeList
-                          .contains(controller.state.goodsData[index])
+                  return Text(controller.likeList
+                          .contains(controller.goodsData[index])
                       ? '已收藏'
                       : '收藏商品');
                 })),

+ 1 - 0
lib/pages/second/second_binding.dart

@@ -2,6 +2,7 @@ import 'package:get/get.dart';
 import 'package:get_demo/pages/second/second_controller.dart';
 
 class SecondBinding extends Bindings {
+  
   @override
   void dependencies() {
     Get.lazyPut<SecondController>(

+ 5 - 7
lib/pages/second/second_controller.dart

@@ -1,28 +1,26 @@
 import 'package:get/get.dart';
 import 'package:get_demo/models/good_model.dart';
 import 'package:get_demo/pages/home/home_controller.dart';
-import 'package:get_demo/pages/second/second_state.dart';
 
 class SecondController extends GetxController {
-  SecondState state = SecondState();
+  GoodsModel result = GoodsModel();
 
   ///获取home页面的controller
   final controllerP = Get.find<HomeController>();
 
   ///如果home的存储收藏的likeList里的实例的sId包含了当前实例的sId,返回true
   bool isLike(GoodsModel result) {
-    return controllerP.state.likeList
-        .any((element) => element.sId == result.sId);
+    return controllerP.likeList.any((element) => element.sId == result.sId);
   }
 
   ///把当前实例存储到likeList里
   addLike(GoodsModel result) {
-    controllerP.state.likeList.add(result);
+    controllerP.likeList.add(result);
   }
 
   ///从likeList移除当前实例
   removeLike(GoodsModel result) {
-    controllerP.state.likeList.remove(result);
+    controllerP.likeList.remove(result);
   }
 
   @override
@@ -30,7 +28,7 @@ class SecondController extends GetxController {
     super.onInit();
 
     ///接收第一页传过来的实例,赋值给Detail
-    state.result = Get.arguments;
+    result = Get.arguments;
   }
 
   @override

+ 0 - 5
lib/pages/second/second_state.dart

@@ -1,5 +0,0 @@
-import 'package:get_demo/models/good_model.dart';
-
-class SecondState {
-  GoodsModel result = GoodsModel();
-}

+ 10 - 5
lib/pages/second/second_view.dart

@@ -12,19 +12,24 @@ class SecondView extends GetView<SecondController> {
         appBar: AppBar(
           title: const Text('SecondView'),
           centerTitle: true,
+          leading: IconButton(
+              onPressed: () {
+                Get.back();
+              },
+              icon: const Icon(Icons.arrow_back)),
         ),
         body: Obx(() {
           return Row(
             children: [
-              Text(controller.state.result.title ?? ''),
+              Text(controller.result.title ?? ''),
               IconButton(
                   onPressed: () {
-                    controller.isLike(controller.state.result)
-                        ? controller.removeLike(controller.state.result)
-                        : controller.addLike(controller.state.result);
+                    controller.isLike(controller.result)
+                        ? controller.removeLike(controller.result)
+                        : controller.addLike(controller.result);
                   },
                   icon: Icon(Icons.favorite,
-                      color: controller.isLike(controller.state.result)
+                      color: controller.isLike(controller.result)
                           ? Colors.red
                           : Colors.grey))
             ],

+ 1 - 1
lib/routes.dart

@@ -9,7 +9,7 @@ import 'package:get_demo/pages/second/second_view.dart';
 /// Author     : liuyuqi.gov@msn.cn
 class Routes {
   static const String home = "/home";
-  static const second = "/second";
+  static const String second = "/second";
 
   static final routes = [
     GetPage(name: home, page: () => const HomeView(), binding: HomeBinding()),

+ 156 - 14
pubspec.lock

@@ -5,10 +5,10 @@ packages:
     dependency: transitive
     description:
       name: async
-      sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
+      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.10.0"
+    version: "2.11.0"
   boolean_selector:
     dependency: transitive
     description:
@@ -21,10 +21,10 @@ packages:
     dependency: transitive
     description:
       name: characters
-      sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
+      sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.2.1"
+    version: "1.3.0"
   clock:
     dependency: transitive
     description:
@@ -37,10 +37,10 @@ packages:
     dependency: transitive
     description:
       name: collection
-      sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
+      sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.17.0"
+    version: "1.17.1"
   cupertino_icons:
     dependency: "direct main"
     description:
@@ -65,6 +65,22 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.3.1"
+  ffi:
+    dependency: transitive
+    description:
+      name: ffi
+      sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.0.2"
+  file:
+    dependency: transitive
+    description:
+      name: file
+      sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "6.1.4"
   flutter:
     dependency: "direct main"
     description: flutter
@@ -83,6 +99,11 @@ packages:
     description: flutter
     source: sdk
     version: "0.0.0"
+  flutter_web_plugins:
+    dependency: transitive
+    description: flutter
+    source: sdk
+    version: "0.0.0"
   get:
     dependency: "direct main"
     description:
@@ -103,10 +124,10 @@ packages:
     dependency: transitive
     description:
       name: js
-      sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
+      sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.6.5"
+    version: "0.6.7"
   lints:
     dependency: transitive
     description:
@@ -119,10 +140,10 @@ packages:
     dependency: transitive
     description:
       name: matcher
-      sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8
+      sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.12.14"
+    version: "0.12.15"
   material_color_utilities:
     dependency: transitive
     description:
@@ -135,10 +156,10 @@ packages:
     dependency: transitive
     description:
       name: meta
-      sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
+      sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.8.0"
+    version: "1.9.1"
   path:
     dependency: transitive
     description:
@@ -147,6 +168,110 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.8.3"
+  path_provider_linux:
+    dependency: transitive
+    description:
+      name: path_provider_linux
+      sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.11"
+  path_provider_platform_interface:
+    dependency: transitive
+    description:
+      name: path_provider_platform_interface
+      sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.0.6"
+  path_provider_windows:
+    dependency: transitive
+    description:
+      name: path_provider_windows
+      sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.6"
+  platform:
+    dependency: transitive
+    description:
+      name: platform
+      sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "3.1.0"
+  plugin_platform_interface:
+    dependency: transitive
+    description:
+      name: plugin_platform_interface
+      sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.4"
+  process:
+    dependency: transitive
+    description:
+      name: process
+      sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "4.2.4"
+  shared_preferences:
+    dependency: "direct main"
+    description:
+      name: shared_preferences
+      sha256: "16d3fb6b3692ad244a695c0183fca18cf81fd4b821664394a781de42386bf022"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.1"
+  shared_preferences_android:
+    dependency: transitive
+    description:
+      name: shared_preferences_android
+      sha256: "6478c6bbbecfe9aced34c483171e90d7c078f5883558b30ec3163cf18402c749"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.4"
+  shared_preferences_foundation:
+    dependency: transitive
+    description:
+      name: shared_preferences_foundation
+      sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.2"
+  shared_preferences_linux:
+    dependency: transitive
+    description:
+      name: shared_preferences_linux
+      sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.0"
+  shared_preferences_platform_interface:
+    dependency: transitive
+    description:
+      name: shared_preferences_platform_interface
+      sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.0"
+  shared_preferences_web:
+    dependency: transitive
+    description:
+      name: shared_preferences_web
+      sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.0"
+  shared_preferences_windows:
+    dependency: transitive
+    description:
+      name: shared_preferences_windows
+      sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.0"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -196,10 +321,10 @@ packages:
     dependency: transitive
     description:
       name: test_api
-      sha256: c9282698e2982b6c3817037554e52f99d4daba493e8028f8112a83d68ccd0b12
+      sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.4.17"
+    version: "0.5.1"
   typed_data:
     dependency: transitive
     description:
@@ -216,5 +341,22 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.4"
+  win32:
+    dependency: transitive
+    description:
+      name: win32
+      sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "4.1.4"
+  xdg_directories:
+    dependency: transitive
+    description:
+      name: xdg_directories
+      sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.0.0"
 sdks:
   dart: ">=3.0.0-21.0.dev <4.0.0"
+  flutter: ">=3.3.0"

+ 1 - 0
pubspec.yaml

@@ -12,6 +12,7 @@ dependencies:
   cupertino_icons: ^1.0.2
   get: ^4.6.5
   dio: ^5.1.1
+  shared_preferences: ^2.0.15
 
 dev_dependencies:
   flutter_test: