-
Notifications
You must be signed in to change notification settings - Fork 254
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migração de Modular v5 para v6 #957
Comments
Olá @adrinebt, Veja essa parte da documentação com a comparação: https://modular.flutterando.com.br/docs/flutter_modular/migration-5-to-6 |
Minha dúvida é sobre como lidar com o caso do construtor de LoginController que tem as dependências IUsuarioService, IConfiguracaoAppService como funcionaria na migração não encontrei nada parecido na documentação
|
|
Outro exemplo é no módulo do Splash que vem antes do login que mostrei anteriormente
|
Para te dar o exemplo na versão 6 corretamente, eu precisaria saber onde são declaradas as dependências Ou seja, no |
IUsuarioService e IConfiguracaoAppService são dependências de LoginController e declaradas em LoginModule.
|
Ok, acredito que não tenha você não compreendeu a informação que preciso, mas vou te dar um exemplo de como eu faria na versão 6 do Modular:
class CoreModule extends Module {
@override
void exportedBinds(Injector i) {
i.addSingleton<IUsuarioService>(UsuarioServiceImpl.new);
i.addSingleton<IConfiguracaoAppService>(ConfiguracaoAppServiceImpl.new);
}
}
class LoginModule extends Module {
@override
List<Module> get imports => [CoreModule()];
@override
void binds(Injector i) {
i.addLazySingleton(LoginController.new),
i.addLazySingleton(LoginRepository.new),
i.addLazySingleton(UsuarioModel.new)
}
@override
void routes(RouteManager r) {
r.child(Modular.initialRoute, child: (context) => const LoginPage()),
}
} Ao fazer |
Perdão, não sei se essa era a sua dúvida agora creio que compreendi. IUSuarioService e IConfiguracaoAppService são de fato interfaces implementadas respectivamente em UsuarioService e ConfiguracaoAppService que como no código abaixo estão declaradas nos binds do AppModule
|
Isso mesmo que eu estava querendo saber. class CoreModule extends Module {
@override
void exportedBinds(Injector i) {
i.addLazySingleton<IConfiguracaoAppService>(ConfiguracaoAppService.new);
i.addLazySingleton<IUsuarioService>(UsuarioService.new);
i.addLazySingleton<CustomDio>(CustomDio.new),
i.addInstance<BaseOptions>(
() => BaseOptions(
baseUrl: baseUrlNova,
contentType: Headers.formUrlEncodedContentType,
connectTimeout: const Duration(seconds: 90),
receiveTimeout: const Duration(seconds: 90),
sendTimeout: const Duration(seconds: 90),
receiveDataWhenStatusError: true,
),
),
}
} Em cada módulo que precisar do |
Obs.: Não use o AppModule para fazer esse exportedBinds das dependências que serão compartilhadas, use um módulo em separado (orientação para modular 6) como o CoreModule do meu exemplo. Se até o AppModule precisar das dependências, pode importar também. |
Interessante, não fiz a migração por conta disso, não havia entendido. |
nesse caso o AppModule serviria somente para declarar os modules como SplashModule, LoginModule? |
Sim, você até pode colocar bind nele, mas seria só de dependências que seriam usadas exclusivamente no AppModule, caso ele tivesse uma página inicial, antes de ir para outro módulo, por exemplo. |
@eduardoflorence deveria colocar esse exemplo/explicação sua na doc, atualizar a mesma. |
Tenho o seguinte código, como poderia migrar para a v6?
Tenho LoginModule que está dentro de app/modules/login
Tenho AppModule que contém todos os módulos
The text was updated successfully, but these errors were encountered: