我是主组件中react native的初学者,我调用数据库执行命令,然后我需要为我返回数据,但在运行控制台后,未定义日志可以帮助我解决这个问题。谢谢
我的主要组件:
const requestJob = async () => {
let queryselect = 'SELECT * FROM tbl_messages ';
var Result = await Select(queryselect);
if (Result == false) {
console.log('no data')
} else {
console.log(Result);
}
}
在我的数据库组件中
var db = openDatabase({ name: 'message.db', createFromLocation: 1 });
db.transaction(tx => {
tx.executeSql(
query,
[],
(tx, results) => {
var len = results.rows.length;
if (len == 0) {
console.log('no ');
return false;
} else {
var temp = [];
for (let i = 0; i < results.rows.length; ++i) {
temp.push(results.rows.item(i));
}
return temp;
}
}
);
});
}
使用Promise
export const get = () => {
return new Promise((resolve, reject) => {
db.transaction(tx => {
tx.executeSql(
query,
[],
(tx, results) => {
var len = results.rows.length;
if (len == 0) {
console.log('no ');
return false;
} else {
var temp = [];
for (let i = 0; i < results.rows.length; ++i) {
temp.push(results.rows.item(i));
}
return temp;
}
}
);
});
});
};
并读取:
const [results, setResults] = useState([]);
const Read = async () => {
const results = await get();
console.log(results)
setResult(results);
}
useEffect(() => {
read();
}, []);