Flutter 避免创建多个 bloc
Flutter avoid multiple bloc creation
我用MaterialApp.router
。
MainRouterDelegate 的构建函数被调用了 4 次。
每次调用时,都会创建一个屏幕及其块。
在集团中,我进行 HTTP 调用。我不想每次创建 bloc 时都进行相同的调用。
我怎样才能避免这种情况?
多个选项:
如果整个应用程序中只有一个bloc实例,您可以在MaterialApp之上添加一个BlocProvoder,该bloc将在应用程序中的任何位置可用,适用于任何路线。
如果您需要即时创建由某个唯一 id 标识的特定元素的块,但您希望确保只创建一次,则您可以基本上使用主块或只需 getIt 即可跟踪 ID 映射到已实例化的块。当您需要在可能被重复调用的构建函数中提供一个 bloc 时,只需首先检查您是否已经拥有您试图在 bloc-map 中提供的 bloc 的副本。如果没有,创建一个并使用元素的 ID 保存它。
我用MaterialApp.router
。
MainRouterDelegate 的构建函数被调用了 4 次。
每次调用时,都会创建一个屏幕及其块。
在集团中,我进行 HTTP 调用。我不想每次创建 bloc 时都进行相同的调用。
我怎样才能避免这种情况?
多个选项:
如果整个应用程序中只有一个bloc实例,您可以在MaterialApp之上添加一个BlocProvoder,该bloc将在应用程序中的任何位置可用,适用于任何路线。
如果您需要即时创建由某个唯一 id 标识的特定元素的块,但您希望确保只创建一次,则您可以基本上使用主块或只需 getIt 即可跟踪 ID 映射到已实例化的块。当您需要在可能被重复调用的构建函数中提供一个 bloc 时,只需首先检查您是否已经拥有您试图在 bloc-map 中提供的 bloc 的副本。如果没有,创建一个并使用元素的 ID 保存它。