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

O botão de editar não encontra o nome do projeto

Existe um IF para retornar o nome de um projeto quando clica no botão editar, usando a função mounted().

mounted () {
        if (this.id) {
            const projeto = this.store.state.projetos.find(proj => proj.id == this.id) 
            this.nomeDoProjeto = projeto?.nome || ''
        }
    }

Eu não entendo porque o retorno desse IF é sempre a string vazia do final da última linha. Isto é, ao inves de atribuir o projeto.nome ao this.nomeDoProjeto, ele atribui sempre uma string vazia ao this.nomeDoProjeto.

Se eu mudar a última linha para this.nomeDoProjeto = projeto?.nome || "Qualquer coisa", o texto editável é "Qualquer coisa".

Alguém pode me apontar para possíveissoluções desse problema?

1 resposta
solução!

Claro, posso te ajudar com isso.

O problema é que a variável projeto pode ser nula ou vazia. Quando você usa o operador ?., ele só retornará o valor da variável se ela não for nula ou vazia. Se a variável for nula ou vazia, o operador ?. retornará o valor padrão, que é a string vazia.

Para resolver esse problema, você pode usar o operador ??. O operador ?? retornará o valor da variável se ela não for nula ou vazia. Se a variável for nula ou vazia, o operador ?? retornará o valor padrão.

No seu caso, você pode usar o operador ?? para retornar o valor da variável projeto.nome se ela não for nula ou vazia. Se a variável for nula ou vazia, o operador ?? retornará a string vazia.

Aqui está o código corrigido:

mounted () {
        if (this.id) {
            const projeto = this.store.state.projetos.find(proj => proj.id == this.id) 
            this.nomeDoProjeto = projeto?.nome ?? ''
        }
    }

Espero que isto ajude!