我是React Native新手,我正在尝试连接sqlite,但是在执行事务时出现以下错误,我已经放置了一些console.log,但在事务后无法输入。
import { useEffect, useState } from "react";
import { Text, View } from "react-native";
import SQLite from "react-native-sqlite-storage";
export default function ListProducts(props: unknown) {
const [names, setNames] = useState<string[]>([]);
useEffect(() => {
const initializeDatabase = async () => {
try {
const db = SQLite.openDatabase({
name: "mydata",
createFromLocation: 1
});
console.log('asdasd');
db.transaction(tx => {
console.log('transaction');
tx.executeSql('CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)');
});
} catch (error) {
}
};
initializeDatabase();
}, []);
return (
<View>
{names.map((name, index) => (
<Text key={index}>{name}</Text>
))}
</View>
);
}
我希望我能很好地执行交易并向sqlite进行查询
我尝试使用await,但没有成功
import { useEffect, useState } from "react";
import { Text, View } from "react-native";
import SQLite from "react-native-sqlite-storage";
export default function ListProducts(props: any) {
const [names, setNames] = useState<string[]>([]);
useEffect(() => {
const initializeDatabase = async () => {
try {
const db = await SQLite.openDatabase({
name: "mydata.db",
createFromLocation: 'default'
});
db.transaction(tx => {
tx.executeSql('CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)');
tx.executeSql(
"SELECT * FROM products",
[],
(_, result) => {
// Obtener los nombres y actualizar el estado
const productNames = Array.from(result.rows).map(row => row.name);
setNames(productNames);
},
(_, error) => {
console.error("Error al consultar productos:", error);
}
);
});
} catch (error) {
console.error("Error al abrir la base de datos:", error);
}
};
initializeDatabase();
}, []);
return (
// Renderiza tu componente aquí
<View>
{names.map((name, index) => (
<Text key={index}>{name}</Text>
))}
</View>
);
}