- 如果你對Flutter還有疑問或者技術方面的疑惑,歡迎加入Flutter交流羣(微信:laomengit)。
- 同時也歡迎關注我的Flutter公衆號【老孟程序員】,公衆號首發Flutter的相關內容。
- Flutter地址:http://laomengit.com 裏面包含160多個組件的詳細用法。
在開發應用程序的時候有些數據是全局的,貫穿整個應用程序,比如用戶信息,我們希望當這些數據發生變化時,應用程序任何頁面的數據都更新,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種寫法,第一種是錯誤的。