flutter 狀態管理provide

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'),
                  ],
                ),
              );
            }
       )
     );
  }
相關文章
相關標籤/搜索