Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

e.target.result não existe

Olá pessoal,

quando tento fazer o que o professor faz na aula, usando o e.target.result na função onupgradeneeded, na parte do result fala que a propriedade não existe.

Até quando eu copio e colo a classe inteira do professor, continua dando esse erro.

Estou usando o Typescript ao invés do JavaScript puro, seria alguma coisa relacionada a isso?

Desde já agradeço!

1 resposta
solução!

Consegui resolver o problema!

Para quem também esta usando o Typescript parece que tem um problema com o event.target.result. A alternativa para conseguir o result seria pegando direto da conexão com o IndexedDB.

Então do código do professor abaixo:

return new Promise((resolve, reject) => {
            let openRequest = window.indexedDB.open('aluraframe',4);

            openRequest.onupgradeneeded = e => {

                stores.forEach(store => {

                    if(e.target.result.objectStoreNames.contains(store)) e.target.result.deleteObjectStore(store);

                    e.target.result.createObjectStore(store, { autoIncrement: true });
                });
            };
        });

Ficaria assim em Typescript:

return new Promise((resolve, reject) => {
            let openRequest = window.indexedDB.open('aluraframe',4);

            openRequest.onupgradeneeded = e => {

                stores.forEach(store => {

                    if(openRequest.result.objectStoreNames.contains(store)) openRequest.result.deleteObjectStore(store);

                    openRequest.result.createObjectStore(store, { autoIncrement: true });
                });
            };
        });

Trocando o e.target.result por openRequest.result.