1
resposta

erro pq os att da class estão declarados com #

é possível da certo ? , declarando os atributos da class com # ... toda vez que mando o objeto criado na class Negociação que tem os att com # ... simplesmente os dados não estão sendo gravado indexedb ..... aparece o objeto vazio .....

tive que fazer isso para pode funcionar como o professor mostrou aula

class Negociacao{
    // #data;
    // #quantidade;
    // #valor;
    constructor(data, quantidade, valor) {

        this._data = data;
        this._quantidade = quantidade;
        this._valor = valor;

    }

    get volume() {
        return this._quantidade * this._valor;
    }

    get data() {
        return this._data;
    }

    get quantidade() {
        return this._quantidade;
    }

    get valor() {
        return this._valor;
    }
}
1 resposta

Olá Wesley, tudo bem com você?

Peço desculpas pela demora no retorno.

Ao adicionarmos um objeto no banco de dados IndexdDb apenas os valores dos atributos serão de fato adicionados ao banco e não ocorre a chamada dos métodos do tipo get para coletar os dados. Quando utilizamos a privação de atributos com a tralha (#), criamos um atributo realmente privado, que não pode ser acessado ou impresso sem o uso dos métodos get.

Por isso, para adicionarmos um objeto que possui atributos privados com a tralha (#) no banco IndexdDb, devemos criar um novo objeto chamando os métodos get do objeto original, passarmos os valores dos atributos para o novo objeto e passarmos esse objeto para a função store.add(). Conforme apresentado abaixo.

let negociacao = new Negociacao(new Date(), 1, 200);

let negociacaoSemAtributosPrivados = {
    data: negociacao.data,
    quantidade: negociacao.quantidade,
    valor: negociacao.valor
}

let request = store.add(negociacaoSemAtributosPrivados);

Basta adicionar o código acima dentro da função adiciona e abaixo da variável store, presente no arquivo aprendendo_indexddb.html. Salve o arquivo e abra-o no navegador.

Agora, basta abrir o painel do desenvolvedor (pressione F12) na aba console chame a função adiciona(). Abra a aba Application e a esquerda em indexedDb verifique o resultado.

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!