3
respostas

Continua duplicando a negociação

Olá, pessoal!

Venho pedir ajuda no código do curso. Realizei as ações para evitar que as negociações sejam duplicadas, porém quando incluo a negociação em uma mesma data, ela ainda é registrada.

Código do botão:

const botaoImporta = document.querySelector('#botao-importa');
if (botaoImporta) {
    botaoImporta.addEventListener('click', () => {
        controller.importaDados();
    });
} else {
    throw Error('Botão importa não foi encontrado.');
}

Código para evitar a duplicação:

public importaDados(): void {
        this.negociacoesService
            .obterNegociacoesDoDia()
            .then(negociacoesDeHoje => {
                return negociacoesDeHoje.filter(negociacaoDeHoje => {
                    return !this.negociacoes
                        .lista()
                        .some(negociacao => negociacao
                            .ehIgual(negociacaoDeHoje)
                        );
                });
            })
            .then(negociacoesDeHoje => {
                for(let negociacao of negociacoesDeHoje) {
                    this.negociacoes.adiciona(negociacao);
                }
                this.negociacoesView.update(this.negociacoes);
            })
    }

Código relacionado às datas:

public ehIgual(negociacao: Negociacao): boolean {
        return this.data.getDate() === negociacao.data.getDate()
            && this.data.getMonth() === negociacao.data.getMonth()
            && this.data.getFullYear() === negociacao.data.getFullYear();
    }

Agradeço a colaboração!

3 respostas

Olá, Natalia! Tudo bem com você?

Seu código parece estar no caminho certo, o único detalhe que percebi que está diferente é que no código do instrutor há um ponto e vírgula ; no final do segundo bloco then, enquanto no seu código falta este ponto e vírgula. Talvez isso esteja causando erros na compilação. Outra possibilidade de solução, que inclusive aconteceu comigo quando fazia esse curso, é você fechar o VSCode, reabrir e executar o npm run start novamente no terminal, porque às vezes ocorre um "bug" e a compilação e o servidor precisam ser reiniciados.

Espero ter ajudado. Caso não consiga solucionar, estamos à disposição!

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Mesmo com a correção, não houve mudanças. Será que pode ser relacionado às versões que estou usando (TypeScript, VSCode...)?

Oi Natalia!

A versão pode gerar problemas em alguns momentos. O instrutor usou o TypeScript na versão 4.2.2. Qual versão você utilizou?

Como comentei, nos trechos que você apresentou, o código aparenta estar correto. Mas, seria melhor se você pudesse compartilhar o projeto completo com a gente, assim podemos analisar melhor testando por aqui e te responder de forma mais assertiva.

Para isso, você pode compartilhar o link do projeto no GitHub. Caso ainda não tenha subido o projeto, é só seguir os passos desse vídeo.

Fico à disposição para ajudar e aguardo o retono. Um abraço!