是否可以通过通知/事件总线之类的方式进行小部件间通信?
我需要能够告诉一个小部件对另一个小部件中发生的事情使用react,并且不想创建硬链接(hard link)。
仅当它在小部件树中高于两个小部件时才会触发通知监听器,因此这可能不是一个可行的解决方案。
最佳答案
根据您的用例,有很多方法可以做到这一点。
你可以让他们成为 AnimatedWidget
通过 ValueNotifier
的 s或 ChangeNotifier
作为 listenable
.您可以在 Gallery 的 animation example 中看到这种模式。 .
您可以使用 StreamBuilder
让您的小部件在 Stream
上出现新事件时自动重建.在 Flutter 主代码库中并没有很多这样的示例,但是一旦您开始使用插件或进行网络 I/O,您可能会需要它。
您可以使用 GlobalKey
获取 currentState
并且在另一个上有一个 State
调用方法。这就是 snackbar 的工作原理 (example)。
您还可以扩展 InheritedWidget
为小部件提供未作为构造函数参数传递的信息,并且当该信息更改时,它们将自动标记为重建。这就是 Theme
例如,我的工作。
如果您可以提供有关小部件的功能/它们之间的关系的更多详细信息,或者理想情况下提供代码片段,我可以帮助您确定哪种方法最适合您的情况。
关于flutter - 小部件间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44309424/