关于 Flutter InheritedWidget 组件之间传值(flutter)
以前看着《第一行代码》学了些 android 编程,后来长时间不用都忘光了。最近想做一个 APP 看 flutter 不错,就试着学了下。各种 widget 满天飞,一层一层。读取数据必须要用 Future,初始化获取数据也是一层 widget 各层数据独立还好,互相传值好麻烦。非要外面套一层 InheritedWidget。 退出检查又要套一层 widget。 请问大佬有没有好一点的关于数据读取,修改,保存的 flutter demo 目前常用 python 写点小程序,一个 global 就搞定了,哪里需要直接用。
关于 Flutter InheritedWidget 组件之间传值(flutter)
更多关于关于 Flutter InheritedWidget 组件之间传值(flutter)的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
试试 provider, https://pub.flutter-io.cn/packages/provider
更多关于关于 Flutter InheritedWidget 组件之间传值(flutter)的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,InheritedWidget
是一种强大的机制,用于在组件树中向下传递数据。这对于实现主题切换、状态管理等场景非常有用。关于 InheritedWidget
组件之间传值,这里有几个关键点需要理解:
-
创建自定义的
InheritedWidget
: 首先,你需要创建一个继承自InheritedWidget
的自定义类,这个类需要实现inheritFromWidgetOfExactType
方法和包含一个能够返回数据的静态方法。 -
插入
InheritedWidget
: 在你的组件树的顶层(通常是MaterialApp
或CupertinoApp
下面),插入这个自定义的InheritedWidget
。 -
访问数据: 在子组件中,你可以使用
Dependencies.of<T>(context)
(其中T
是你的InheritedWidget
的类型)来访问传递的数据。注意,context
必须是当前组件或其父组件的上下文。 -
更新数据: 当
InheritedWidget
中的数据变化时,你需要创建一个新的InheritedWidget
实例,并将它插入到组件树中,这样子组件才能接收到更新的数据。这通常通过状态提升(lifting state up)到更高层的组件来实现。 -
性能考虑: 由于
InheritedWidget
会在每次构建时遍历整个子树来寻找最近的提供者,所以在性能敏感的场景下,需要注意不要滥用。
总之,InheritedWidget
是一种灵活且强大的工具,但需要谨慎使用,以避免性能问题和不必要的复杂性。