1

我用MaterialApp.router. MainRouterDelegate 的构建函数被调用了 4 次。每次调用它时,都会创建一个屏幕及其块。在集团中,我进行 HTTP 调用。我不想在每次创建集团时都打同样的电话。我怎样才能避免这种情况?

4

1 回答 1

1

几个选项:

  1. 如果整个应用程序中只有一个 bloc 实例,您可以在 MaterialApp 上方添加一个 BlocProvoder,该 bloc 将在应用程序中的任何位置可用,适用于任何路线。

  2. 如果您需要动态创建由某个唯一 id 标识的特定元素的 bloc,但您想确保只创建一次,则基本上可以使用 main bloc 或 getIt 来跟踪 ID 映射到已经实例化的块。当您需要在可能被重复调用的构建函数中提供一个 bloc 时,只需首先检查您是否已经在 bloc-map 中提供了您尝试提供的 bloc 的副本。如果没有,请创建一个并将其与元素的 ID 一起保存。

于 2021-06-21T04:49:33.903 回答