3
respostas

[Bug] Botão importa não está acionando nenhum evento

Olá, eu preciso de ajuda. Quando clico no botão importa nada ocorre. Mesmo quando apenas havia um alert na função. Eu repeti os mesmos passos que o professor. Quando eu não defino o button como type button, a função adiciona está sendo chamada pelo botão.

negociacao-controller:

public importaDado(): void {
        fetch('http://localhost:8080/dados')
            .then(res => res.json()) // recebi os dados e converti para json
            .then((dados: any[] ) => { // recebo um array do tipo e com esse array que recebo, eu retorno um map dele 
                return dados.map(dadoDeHoje => { //para cada dado do array, considero como dadoDeHoje, e para cada eu retorno uma instancia de negociacao passando os dados recebidos por parametro 
                    return new Negociacao(
                        new Date(),
                        dadoDeHoje.vezes, 
                        dadoDeHoje.montante
                    )
                })
            })
            .then(negociacoesDeHoje => { 
                for(let negociacao of negociacoesDeHoje){ //pego cada negociacao e adiciono
                    this.negociacoes.adiciona(negociacao);
                }
                this.negociacoesView.update(this.negociacoes) // atualizar a view com o dado que veio
            });
    }

app.ts:

import { NegociacaoController } from './controllers/negociacao-controller.js';

const controller = new NegociacaoController();

const form = document.querySelector('.form');
if (form) {
    form.addEventListener('submit', event => {
        event.preventDefault();
        controller.adiciona();
    });
} else {
    throw Error('Não foi possível inicializar a aplicação. Verifique se o form existe.');
}

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

index.html

.
.
.

        <button class="btn btn-primary" type="submit">Incluir</button>
        <button id="botao-importa" class="btn btn-primary" type="button">Importar</button>

    </form>
3 respostas

Parece que o meu app.js não tem a funcão que eu criei no app.ts

PS C:\Users\noele\OneDrive\arquivos\Documentos Gerais\conhecimento\Web\Typescript\typescript-curso-3-with_api\typescript-curso-3-772f5a419db4b1bc03c225a2ecd8da0c9c832b7b> npm start

alurabank@1.0.0 start concurrently "npm run watch" "npm run server"

'concurrently' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.

ao executar npm start ocorre esse erro também:

Algum ajuda para entender o pq meu app.js não compilou o novo método no app.ts?

Oii, Dev! Tudo bem?

Agradeço por aguardar o nosso retorno.

Pelo erro apresentado, indica que "concurrently" não está instalado em seu sistema. Para resolver esse problema, você pode instalar o pacote "concurrently" globalmente em sua máquina, utilizando o seguinte comando no terminal:

npm install -g concurrently

Caso prefira, você também pode instalar o pacote localmente em seu projeto, adicionando-o como dependência de desenvolvimento em seu arquivo "package.json". Para isso, basta executar o seguinte comando no terminal:

npm install --save-dev concurrently

Após a instalação do pacote, tente rodar o comando npm run start novamente e observe se tudo ocorre como esperado.

Espero ter ajudado, qualquer dúvida, estarei à disposição.

Bons estudos!

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