Flutter 学习笔记1【状态共享】 mobx
一.引入依赖
使用mobx, flutter_mobx, mobx_codegen, build_runner
pubspec.yaml
...
dependencies
mobx
二.创建store文件
保存对应页面的状态
项目接口大致如下(按自己风格)
xxxproject/
lib/
...
store/
...
tabs.dart
三.编辑tabs.dart
tabs.dart
import 'package:mobx/mobx.dart';
/** 用于生成 tabsStore.g.dart **/
part 'tabsStore.g.dart';
class TabsStore = TabsStoreMobx with _$TabsStore;
/** 用于生成 tabsStore.g.dart **/
abstract class TabsStoreMobx with Store {
四.生成*.g.dart文件
使用build_runner及mobx_codegen
在项目目录下使用终端执行指令:
首次
flutter packages pub run build_runner build
每次修改到这个存储store状态的文件后,都要删除*.g.dart文件,所以执行下面这个会方便一点
flutter packages pub run build_runner build --delete-conflicting-outputs
或者监听store目录的变化,自动生成
flutter packages pub run build_runner watch
此时的项目目录如下
xxxproject/
lib/
...
store/
...
tabs.dart
tabs.g.dart
五.正式使用mobx
我想实现一个tabbar功能, 使用BottomAppBar, 每个tabs按钮使用封装好组件作为子组件
父组件 Tabs.dart
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:flutter_salted_fish/components/BottomAppBarItem.dart';
import 'package:flutter_salted_fish/pages/tabs/AddAction.dart';
import 'package:flutter_salted_fish/pages/tabs/Home.dart';
import 'package:flutter_salted_fish/pages/tabs/Mine.dart';
import 'package:flutter_salted_fish/pages/tabs/Msg.dart';
import 'package:flutter_salted_fish/pages/tabs/PlayGood.dart';
import 'package:flutter_salted_fish/store/tabsStore.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class Tabs extends StatefulWidget {
Tabs({Key key}) : super(key: key);