美文网首页
flutter ValueNotifier 监听失败

flutter ValueNotifier 监听失败

作者: 小星星吃KFC | 来源:发表于2020-08-12 21:18 被阅读0次
  • 定义
 var listNotifier = ValueNotifier<List<String>>([]);
  • 监听
  @override
  void initState() {
    super.initState();
    listNotifier.addListener(() {
      print('listNotifier = ${listNotifier.value}');
    });
  }
  • 赋值:方法1,无法触发监听
listNotifier.value.add(Random().nextInt(100).toString());
print(listNotifier.value.hashCode);
  • 赋值:方法2,可以触发监听
原理与iOS的kvo原理类似.list添加元素,未改变地址,所以无法触发监听,利用深copy 重新赋值,就触发监听了
/// 正常的赋值
listNotifier.value.add(Random().nextInt(100).toString());
///重点,进行深copy
listNotifier.value = [...listNotifier.value];
print(listNotifier.value.hashCode);

相关文章

网友评论

      本文标题:flutter ValueNotifier 监听失败

      本文链接:https://www.haomeiwen.com/subject/pdzmdktx.html