作者回复: 赞
InheritedWidget 无论跨多少层都可以的
作者回复: 更推荐Provider
作者回复: 赞
作者回复: 赞
作者回复: 推荐Provider
作者回复: 可以啊,对象是引用传递就没问题
作者回复: 注册通知(调用listen)的时候会返回一个监听对象,用于后续取消事件通知
作者回复: 赞,你已经得出正确结论了
作者回复: 1.直接使用State当然可以呀,只是这个例子是演示如何通过InheritedWidget进行读写数据。InheritedWidget只能读不能写,要写数据得通过State中转一层
2.看评论你已经得出结论啦
作者回复: 这段代码应该是没问题的,如果是用箭头函数才会有问题
作者回复: EventBus原理比较简单,通过一个可以被多人共享(订阅)的数据流就可以实现事件的分发。Dart的event_bus实际上就是通过一个可以被多个人订阅的Stream实现的,而其底层的StreamController就是专门用来给Steam制造数据的。
作者回复: Provider会讲的
作者回复: 有啊。但是对于跨组件传递数据,存取方式并不重要,重要的是存好了怎么通知其他组件来取
作者回复: 把event bus封装成单例就可以了
作者回复: Event Bus是最简单高效的,不过还得看具体场景。
作者回复: 你把两个页面都换成StatefulWidget再看一下