1、引入依賴ide
dependencies: provide: ^1.0.2
2、建立Provideui
import 'package:flutter/material.dart'; import 'package:my_flutter_shop/model/user_model.dart'; class UserProvide with ChangeNotifier { UserModel userInfo ; getUserInfo(UserModel user){ userInfo=user; notifyListeners(); } }
3、在頂層引入spa
import 'package:provide/provide.dart'; import './provide/user_provide.dart';
void main() { // 狀態管理 var userInfo = UserProvide(); var providers = Providers(); providers..provide(Provider<UserProvide>.value(userInfo)); ProviderNode(child: MyApp(), providers: providers); runApp(ProviderNode(child: MyApp(), providers: providers)); }
4、修改狀態code
getUserInfo(val["access_token"]).then((user) { Provide.value<UserProvide>(context).getUserInfo(user);
5、獲取狀態orm
Widget _buildLoginHead() { return Container( child: Provide<UserProvide>( builder: (context,child,userprovide){ return Container( child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ SizedBox( width: 100, child: _buildAvatar(userprovide.userInfo.avatarUrl), ), SizedBox( width: 100, child: _buildLoginInfo(userprovide.userInfo.username, userprovide.userInfo.mobile), ), SizedBox( width: 25, child: _buildUpdate('me_update_name'), ), _buildMyinfomation('me_information'), ], ), ); } ) ); }