Provider的原本作用是解耦,进行状态管理,这里使用最基础的Provider进行这个作用的演示
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Material App',
home: Scaffold(
appBar: AppBar(
title: Text('Material App Bar'),
),
body: Home(),
),
);
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Provider<String>(
create: (_)=>'1',
child: Center(
child: ChildWidget(),
),
);
}
}
class ChildWidget extends StatelessWidget {//在这里不用明确的把数值传递过来
@override
Widget build(BuildContext context) {
var select = context.select<String,int>((value){//输入,对应String,源自Provider提供的内容
return int.parse(value);//输出,对应int,具体参考Selector
});
return Text('获取的内容:$select');
}
}