Detailed usage of flutter-provider

  • Based on provider version 4.3.3, only the basic usage is introduced here, and more usage reference documents
  • document address

Step 1: Install

Step 2: Create a provider object instance

  • Official documents do not use ChangeNotifierProvider.value to create instances, as follows.

    insert image description here

  • Officially recommended method:

//可以放在main.dart入口文件,也可以放在其他你需要的位置
  Provider(   
  		create: (_) => MyModel(),  
  	 	child: ... 
  )
//MyModel()只是单纯的示例对象
class MyModel{
	int data=0;
	void setData(int NewData){
		this.data=NewData
	}
}
  • Create an object using Provider.value

     ChangeNotifierProvider.value(
     	value: MyModel(),
     	child: ...
     )
    

The official documentation says this:
insert image description here

		//所以MyModel()应该是已经存在的 ChangeNotifier
		class MyModel  extends ChangeNotifier{
			int data=0;
			void setData(int NewData){
				this.data=NewData
				notifyListeners();
			}
		}

Step 3: Get the value

	在你需要的地方:MyModel res =Provider.of<MyModel>(context);
		print(res.data)  //获取值
		res.setData(2) //设置值

Example:

  • main.dart
    insert image description here
  • ~/store/provider/home.dart’

insert image description here

  • Use ~/pages/Tabs/Tabs.dart
    insert image description here

insert image description here

Guess you like

Origin blog.csdn.net/qq_42944436/article/details/113992326
Recommended