Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

canLoad não funciona.

Tenho 3 módulos (profile, admin e checkout), que são carregados diretamente no app-module. O canLoad só funciona para o módulo admin, mas não funciona para os outros dois.

Todas as rotas são configuradas no *-routing.module.

Já pesquisei bastante e analisei código, mas não encontrei o problema.

1 resposta
solução!

Oi Daniel, tudo bem?

Desculpe a demora em retornar.

Primeiramente, é importante lembrar que o método canLoad é utilizado para controlar o carregamento de módulos preguiçosamente. Ou seja, ele é chamado antes do módulo ser carregado, e é utilizado para determinar se o módulo deve ser carregado ou não.

Com base na informação que você compartilhou, é possível que o problema esteja relacionado à configuração das rotas nos módulos. É importante verificar se as rotas estão sendo configuradas corretamente nos arquivos de roteamento de cada um dos módulos (profile-routing.module, admin-routing.module e checkout-routing.module).

Além disso, é importante verificar se o caminho especificado nas rotas é o mesmo que está sendo utilizado para acessar o módulo. Por exemplo, se a rota para o módulo profile é definida como profile, é necessário acessar o módulo através da URL /profile.

Outro ponto importante é verificar se o método canLoad está sendo implementado corretamente em cada um dos módulos. Por exemplo, se você tem o seguinte código no arquivo admin-routing.module:

const routes: Routes = [
  {
    path: 'admin',
    loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule),
    canLoad: [AuthGuard]
  }
];

Você deve garantir que o canLoad esteja implementado no AuthGuard de forma correta. Caso contrário, o módulo não será carregado, mesmo que a rota esteja configurada corretamente.

Além disso, é possível que haja alguma diferença na forma como os módulos estão sendo carregados. Por exemplo, se o módulo admin está sendo carregado de forma diferente dos outros módulos, isso pode estar causando o problema. Nesse caso, é importante verificar a configuração do lazy loading em cada um dos módulos.

Por fim, é possível que o problema esteja relacionado a algum erro de sintaxe ou configuração nos arquivos de roteamento ou nos módulos. Portanto, é importante verificar cuidadosamente o código em busca de erros.

Espero que tenha te ajudado.

Um abraço e bons estudos.