1
resposta

Nao funciona para o React Native 0,65 Sem Expo

Quando tento replicar o conhecimento nessa aula utilizando o React Native sem o EXPO nao funciona. O exemplo da aula nao da uma versao para instalacao compativel Ao executar npm install --save react-native-sqlite-storage a versao instalada é : "react-native-sqlite-storage": "^6.0.1"

Ao tentar criar a tabela, é gerado o erro: TypeError: undefined is not a function (near '...$$REQUIRE(_dependencyMap[2], "./SQLite").db.transaction...')

This error is located at: in App (at renderApplication.js:48) in RCTView (at View.js:32) in View (at AppContainer.js:106) in RCTView (at View.js:32) in View (at AppContainer.js:133) in AppContainer (at renderApplication.js:41) in closetVirtual(RootComponent) (at renderApplication.js:57) ERROR TypeError: undefined is not a function (near '...$$REQUIRE(_dependencyMap[2], "./SQLite").db.transaction...')

Quando eu abro o codigo do 'react-native-sqlite-storage' apresenta que é TypeScript Version: 2.4 Meu projeto nao utiliza TypeScript, pois sigo o mesmo exemplo da formacao de React-Native

Codigo SQLite.js function abreConexao() { const database = SQLite.openDatabase("db.db"); //console.log(database); return database; }

export const db = abreConexao();

Codigo do Service import { db } from "./SQLite";

export function criaTabela() { db.transaction( (transaction) => { const sql = "CREATE TABLE IF NOT EXISTS Pecas "+ "(id INTEGER PRIMARY KEY AUTOINCREMENT, "+ "nome TEXT, tipo TEXT, foto TEXT); "; transaction.executeSql(sql); }); }

1 resposta

Olá, Márcio! Tudo bem?

Parece que você está enfrentando um problema ao tentar utilizar o React Native sem o Expo e criar uma tabela no SQLite. O erro que você está recebendo indica que há um problema com a função db.transaction.

Uma possível solução para esse problema é verificar se você está importando corretamente o módulo SQLite no arquivo SQLite.js. Certifique-se de que o caminho do import está correto e que o arquivo SQLite.js está no local esperado.

Além disso, verifique se você está utilizando a versão correta do react-native-sqlite-storage para a versão do React Native que você está utilizando. Pode ser que a versão que você instalou não seja compatível com a versão do React Native 0.65.

Uma alternativa que você pode tentar é utilizar outra biblioteca para manipulação de banco de dados no React Native, como o react-native-sqlite-2 ou o react-native-sqlite-storage-legacy. Essas bibliotecas são alternativas ao react-native-sqlite-storage e podem ser mais compatíveis com a versão do React Native que você está utilizando.

Espero que essas dicas possam te ajudar a resolver o problema! Se tiver mais alguma dúvida, é só perguntar. Estou aqui para ajudar!

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software