1
resposta

A Frase: "Negociação adicionada com sucesso" só aparece depois de inserir duas vezes.

A Frase: "Negociação adicionada com sucesso" só aparece depois de inserir duas vezes.

meu código de NegociacaoController está assim:

class NegociacaoController {

  constructor() {

    let $ = document.querySelector.bind(document);
    this._inputData = $('#data');
    this._inputQuantidade = $('#quantidade');
    this._inputValor = $('#valor');


    this._negociacoesView = new NegociacoesView($('#negociacoesView'));

    this._listaNegociacoes = new Bind
      (new ListaNegociacoes(),
        this._negociacoesView,
        ['adiciona', 'esvazia'])


    this._mensagemView = new MensagemView($('#mensagemView'));

    this._mensagem = new Bind
      (new Mensagem(),
        this._mensagemView,
        ['texto']);

  }

  adiciona(event) {

    event.preventDefault();
    this._listaNegociacoes.adiciona(this._criaNegociacao());

    this._mensagem.texto = 'Negociação adicionada com sucesso';

    this._limpaFormulario();
  }

  apaga() {

    this._listaNegociacoes.esvazia();

    this._mensagem.texto = 'Negociações apagadas com sucesso';
  }

  _criaNegociacao() {

    return new Negociacao(
      DateHelper.textoParaData(this._inputData.value),
      this._inputQuantidade.value,
      this._inputValor.value);
  }
  _limpaFormulario() {

    this._inputData.value = '';
    this._inputQuantidade.value = '1';
    this._inputValor.value = '0.0'

    this._inputData.focus();
  }
}
1 resposta

Olá, tudo bem com você?

Peço desculpas pela demora em lhe responder.

Realizei testes e simulações do código enviado em conjunto com o código da aula, e o mesmo está funcionando como esperado.

A mensagem de modificação das negociações, pode não está aparecendo no primeiro momento em que ocorre a interação, devido ao modo em que o atributo set, presente no arquivo ProxyFactory.js foi declarado. No atributo set será necessário realizar a atribuição do value à propriedade do alvo do proxy.

Peço que no verifique o arquivo ProxyFactory.js, localize o método create. No atributo set passado para o construtor da classe Proxy iremos adicionar a seguinte linha de código: target[prop] = value;

O atributo set deve ficar como apresentado abaixo.

set(target, prop, value, receiver) {
    if(props.includes(prop)) {
        target[prop] = value;
        acao(target);
    }
    return Reflect.set(target, prop, value, receiver);
    }

Após a aplicação da mudança descrita acima, salve o arquivo ProxyFactory.js. Abra o arquivo index.html no navegador e adicione uma nova negociação, verifique se a mensagem é apresentada na adição da primeira negociação.

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

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