flutter ValueNotifier 监听失败

2020-08-12  本文已影响0人  小星星吃KFC
 var listNotifier = ValueNotifier<List<String>>([]);
  @override
  void initState() {
    super.initState();
    listNotifier.addListener(() {
      print('listNotifier = ${listNotifier.value}');
    });
  }
listNotifier.value.add(Random().nextInt(100).toString());
print(listNotifier.value.hashCode);
原理与iOS的kvo原理类似.list添加元素,未改变地址,所以无法触发监听,利用深copy 重新赋值,就触发监听了
/// 正常的赋值
listNotifier.value.add(Random().nextInt(100).toString());
///重点,进行深copy
listNotifier.value = [...listNotifier.value];
print(listNotifier.value.hashCode);
上一篇 下一篇

猜你喜欢

热点阅读