在开发应用程序的时候有些数据是全局的,贯穿整个应用程序,比如用户信息,我 们希望当这些数据发生变化时,应用程序任何页面的数据都更新, ValueListenableBuilder 组件就是解决此问题的。
对于像字符串或整数这样的简单的变量,只要将它们包装在ValueNotifier中,ValueNotifier(0);
ValueNotifier('Hello');
基本用法如下
ValueNotifier<String> _name=ValueNotifier<String>('');
ValueListenableBuilder(
builder:(context,value,child){
return Text(value);
},
valueListenable:_name,//一个可以监听的数据源
child:Text('未登录'),
);
说明如下
- builder:在数据发生变化时调用,共有3个参数,分别表示context、数据新的值,子控件。
- valueListenable:数据源,
- child:此参数会回传给builder,可以为null。
_name = ValueNotifier<String>('老孟'); //错误用法
_name.value = '老孟';