1
resposta

Erro console.log novas quantidades

Bom dia,

Seguindo o código do vídeo, encontro o seguinte resultado no console.log

valor anterior: 1, novo valor: _quantidade index.html:64 valor anterior: 100, novo valor: _valor

Não consigo entender onde está o erro, alguém poderia ajudar?

Obrigado

Segue meu index HTML

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Negociações</title>
    <link rel="stylesheet" href="css/bootstrap.css">
    <link rel="stylesheet" href="css/bootstrap-theme.css">

</head>
<body class="container">

    <h1 class="text-center">Negociações</h1>

    <div id="mensagemView"></div>

    <form class="form" onsubmit="negociacaoController.adiciona(event)">

        <div class="form-group">
            <label for="data">Data</label>
            <input type="date" id="data" class="form-control" required autofocus/>        
        </div>    

        <div class="form-group">
            <label for="quantidade">Quantidade</label>
            <input type="number" min="1" step="1" id="quantidade" class="form-control" value="1" required/>
        </div>

        <div class="form-group">
            <label for="valor">Valor</label>
            <input id="valor" type="number" class="form-control"  min="0.01" step="0.01" value="0.0" required />
        </div>

        <button class="btn btn-primary" type="submit">Incluir</button>
    </form>

    <div class="text-center">
        <button class="btn btn-primary text-center" type="button">
            Importar Negociações
        </button>
        <button onclick="negociacaoController.apaga()" class="btn btn-primary text-center" type="button">
            Apagar
        </button>
    </div> 
    <br>
    <br>

    <div id="negociacoesView"></div>
    <script src ="js/app/view/View.js"></script>
    <script src="js/app/models/Negociacao.js"></script>
    <script src="js/app/controllers/NegociacaoController.js"></script>
    <script src="js/app/helper/DateHelper.js"></script>
    <script src="js/app/models/ListaNegociacoes.js"></script>
    <script src="js/app/view/NegociacoesView.js"></script>
    <script src="js/app/models/Mensagem.js"></script>
    <script src ="js/app/view/MensagemView.js"></script>

    <script>
        let negociacaoController = new NegociacaoController();
    </script>

    <script>
        let negociacao = new Proxy(new Negociacao(new Date(), 1, 100), {
            set: function(target, prop, value, receiver) {
                console.log(`valor anterior: ${target[prop]}, novo valor: ${prop}`);
                return Reflect.set(target, prop, value, receiver);
            }
        });
/*target é a referencia ao obj original encapsulado pelo proxy, a propriedade a ser acessa e a ref ao próprio proxy*/
     negociacao._quantidade = 10;
     negociacao._valor = 100;
    </script>
</body>
</html>
1 resposta

Fala ai Ricardo, tudo bem? Acho que o problema está no log, você está logando a propriedade à ser alterada em vez do novo valor:

console.log(`valor anterior: ${target[prop]}, novo valor: ${prop}`);

Tente mudar o segundo${} para utilizar o value no lugar da prop, ficando:

console.log(`valor anterior: ${target[prop]}, novo valor: ${value}`);

Espero ter ajudado.