ValueListenableBuilder 局部刷新

来源:laomengit.com 更新时间:2023-05-25 21:55


更详细介绍:
https://cloud.tencent.com/developer/article/1768428
http://laomengit.com/flutter/widgets/ValueListenableBuilder.html
ValueListenableBuilder ValueNotifier

在开发应用程序的时候有些数据是全局的,贯穿整个应用程序,比如用户信息,我们希望当这些数据发生变化时,应用程序任何页面的数据都更新,ValueListenableBuilder组件就是解决此问题的。

基本用法如下:

ValueNotifier<String> _name = ValueNotifier<String>('');

ValueListenableBuilder(
    builder: (context, value, child) {
      return Text(value);
    },
    valueListenable: _name,
    child: Text('未登录'),
  );

说明如下:

  • builder:在数据发生变化时调用,共有3个参数,分别表示context、数据新的值、子控件。

  • valueListenable:监听到数据,数据类型为ValueNotifier。

  • child:此参数将会回传给builder,可以为null。

更新数据用法如下:

_name = ValueNotifier<String>('老孟'); //错误用法
_name.value = '老孟';
 

注意这2种写法,第一种是错误的。