美文网首页
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