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

Salvar Notas não esta Funcionando

Olá, bom dia! Quando tento Salvar a nota ela não funciona... Minha função de adicionar nota esta sendo chamada corretamente ( Adicionei logs para verificar) porém quando clico em Salvar a nota não é salva e o aplicativo não passa dessa função. Não é retornado nenhum log de erro ou algo assim.

Meu arquivo de Notas.js da pasta servicos esta assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pelo que eu pude perceber na função adicionarNota() meu código nao chega no resolve

Meu arquivo SQLite.js esta assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Parte do meu arquivo NotaEditor esta assim:

import { adicionarNota } from "../servicos/Notas";

export default function NotaEditor({ mostraNotas }) {
  const [titulo, setTitulo] = useState("");
  const [categoria, setCategoria] = useState("Pessoal");
  const [texto, setTexto] = useState("");
  const [modalVisivel, setModalVisivel] = useState(false);

  async function salvaNota() {
    const umaNota = {
      titulo: titulo,
      categoria: categoria,
      texto: texto,
    };

    const reposta = await adicionarNota(umaNota);

    console.log("reposta -> ", reposta);
    mostraNotas();
  }

Adicionei alguns logs para ver o funcionamento e nesse caso, deveria aparecer o console.log("resposta -> ", resposta) com o resultado da função mas ele nao funciona.

1 resposta
solução!

Olá, Dilmar! Bom dia!

Pela descrição do seu problema, parece que a função adicionarNota() não está sendo resolvida como esperado. Vamos tentar identificar o que pode estar acontecendo.

Primeiramente, é importante verificar se a transação no SQLite está sendo concluída com sucesso. No seu código, você adicionou um console.log("Nota adicionada com sucesso"); dentro do callback de sucesso da transação, mas ele não está sendo executado. Isso sugere que a transação pode estar falhando ou não está sendo chamada corretamente.

Aqui estão algumas sugestões para você tentar resolver o problema:

  1. Verifique se a tabela foi criada corretamente: Confirme se a função criaTabela() foi chamada e executada com sucesso antes de tentar adicionar notas.

  2. Erro de digitação no SQL: No seu código, parece que há um erro de digitação no comando SQL. A palavra "INSERT" está escrita como "INSER", o que pode estar causando o problema. Corrija para "INSERT INTO Notas (titulo, categoria, texto) VALUES (?, ?, ?);".

  3. Erro de execução silenciosa: Pode ser que a transação esteja falhando, mas sem lançar um erro visível. Adicione um segundo callback na função transaction.executeSql para capturar erros. Seria algo assim:

db.transaction((transaction) => {
  transaction.executeSql(
    "INSERT INTO Notas (titulo, categoria, texto) VALUES (?, ?, ?);",
    [nota.titulo, nota.categoria, nota.texto],
    () => {
      console.log("Nota adicionada com sucesso");
      resolve("Nota adicionada com sucesso");
    },
    (error) => {
      console.log("Erro ao adicionar nota: ", error);
      reject(error); // Não esqueça de adicionar o parâmetro 'reject' na sua Promise.
    }
  );
});
  1. Confirmação de dados: Certifique-se de que os dados da nota (nota.titulo, nota.categoria, nota.texto) estão sendo passados corretamente para a função adicionarNota().

  2. Teste a função de adição diretamente: Tente executar a função adicionarNota() diretamente com dados de teste para ver se ela funciona isoladamente.

  3. Verifique a conexão com o banco de dados: Confirme se a conexão com o banco de dados está sendo estabelecida corretamente pelo SQLite.openDatabase.

Após fazer essas verificações e correções, tente salvar uma nota novamente e veja se o console.log da resposta é exibido como esperado.

Espero que essas dicas ajudem a resolver o problema. Bons estudos!