[Détaillé] Fournisseur de gestion de l'état mondial de Flutter

[Détaillé] Fournisseur de gestion de l'état mondial de Flutter

@auteur
As.Kai

Premières dépendances d'importation

fournir: ^ 1.0.2

Insérez la description de l'image ici

La dernière version peut être consultée sur le pub

Après l'importation, créez un état de gestion Fournir sous le dossier lib:
Insérez la description de l'image ici

Exemple de site Web officiel:
créer une démo de gestion des données de page statique ++

par exemple:
Créez un fichier counter.dart dans le dossier provide:

import 'package:flutter/cupertino.dart';

class Counter with ChangeNotifier{
	int value = 0;
	increment(){
		value++;
//内部方法 用户每次调用value++方法 会通知我们执行了该方法
//局部刷新Widget
		notifyListeners();
	}
}

Notez que la méthode notifyListeners (); signifie surveillance et actualisation partielle. Après avoir
écrit la méthode ++, vous devez écrire la dépendance dans main.dart:

void main(){
//连接状态管理器
	var counter = new Counter();
	var providers = new Providers();
//依赖 (规范) 如果有多个管理器 分号在最后一个管理器结束
//改泛型和管理器名称
	providers..provide(
		Provider<Counter>.value(counter)
		);
	//多管理器配置(多管理器除最后一个分号结束,其他不需要分号)
// ..provide(Provider<Counter>.value(counter));
// ..provide(Provider<Counter>.value(counter));
	runApp(
		ProviderNode(
			child: MyApp(),providers: providers,
			)
		);
}

Faites attention à la configuration de runApp (), de nombreuses personnes oublieront cette étape de configuration et provoqueront le signalement d'une erreur par le programme
Écrivez un texte et un bouton sur la page de mise en page, cliquez sur le numéro de texte du bouton plus 1
méthode de référence: le
texte doit être enveloppé avec le contrôle Fournir <nom du gestionnaire générique> {

Il existe une construction de constructeur (

3 paramètres (contexte, sous-classe enfant, compteur de contrôleur)) { Retourne directement un contrôle par exemple: return new Text ('$ {counter.value}'); OK } }




Code:

class Number extends StatelessWidget {
@override
Widget build(BuildContext context) {
	return Container(
	//需要包裹一层Provide<Counter>泛型
		child: new Provide<Counter>(
	//构造器
			builder: (context,child,counter){
			return new Text('${counter.value}');
				},
			),
		);
	}
}

Au niveau du bouton:
Cliquez sur l'événement pour appeler la méthode ++ dans le gestionnaire
Appelez la méthode:
Fournir.value <classe de gestionnaire générique Counter> (contexte) .increment ();

Code:

class MyButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
	return new RaisedButton(
	//点击事件
		onPressed: () {
	//通过Provide.value<>泛型的方式获取上下文后
	// 使用我们创建的increment value++方法
		Provide.value<Counter>(context).increment();
		},
			child: new Text('状态管理点击递增'),
		);
	}
}

Un simple Provider est terminé. Flutter run. Voyons l'effet!

Suivez-moi et grandissez ensemble!
-As.Kai

Je suppose que tu aimes

Origine blog.csdn.net/qq_42362997/article/details/111578156
conseillé
Classement