[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
MarcosDisc
Criador MarcosDisc 16/08/2022

Olá Carlos, tranquilo?

Gostaria de compartilhar uma dúvida e pedir uma ajuda com o Livewire.

Criei dois componentes (Index e Save) para cada Model (Curso e Módulo), no componente view "Index" eu exibo uma lista de Curso com um link em cada linha para a view "Index" de Módulos. Nessa lista de Módulos eu tenho um botão Add para incluir um novo Módulo e encontrei dificuldade em passar o id do Curso da component "Index" para o "Save" de Módulos e fiz da seguinte forma:

# VIEW

<a class="btn-secondary mb-3" href="#" wire:click.prevent='createModulo({{$this->curso}})'>Criar</a>

 

# COMPONENT

public function createModulo(Curso $curso) {

    $idCurso = $curso->id;

    return redirect()->route('d-modulo-create', ['idCurso' => $idCurso]);

}

 

#ROUTE

Route::get('/create/{idCurso}', App\Http\Livewire\Modulo\Save::class)->name("d-modulo-create");

 

Eu consegui fazer funcionar do modo acima e gostaria de saber se essa é a melhor prática ou se existe um outro modo de enviar e receber parâmetros entre components livewire.

 

 

 

 

 

 

 

Criador MarcosDisc 16/08/2022

Estou tentando também uma abordagem com Event da seguinte forma:

no component view Index do Módulo eu tenho o seguinte botão:

 <button wire:click="$emitTo('Components.Curso.Save', 'postAdded', {{ $this->curso }})">ChamaEvent</button>

e no componet controler Save de Módulo eu tenho isso:

    protected $listeners = ['postAdded'];

    public function postAdded(Curso $curso)

    {

        dd($curso);

    }

 

porém não rola, talvez pq o component Save de Módulo ainda não foi instanciado e aí fica a pergunta, como melhor prática nesse contexto? A passagem de parâmetros entre componentes só funciona quando os mesmos estão instanciados? Se sim, é comum instanciar todos os componentes que participarão do processo, listar, adicionar, excluir e editar? Ou existe uma forma de separa esses processos por componentes e passar os parametros pela rota e interceptar pelo mount() o componente alvo? Eu tentei isso tb, mas bagunçou as rotas e tive problema com not found...

desculpe a enxurrada de perguntas e dúvidas, estou empenhado em entender como o Livewire trabalha para tirar o melhor proveito da tecnologia.

Desde já agradeço.

 

 

 

 

 

 

MarcosDisc
Manager Carlos Ferreira 16/08/2022

Olá, Marcos!
Tudo bem?

Como a sua pergunta é algo muito particular, vou pedir que encaminhe ela para [email protected], porque assim posso te ajudar de forma mais direcionada.

No aguardo amigo! 🙂

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!