Sqlite 将数据从DB helper类返回到组件

Sqlite 将数据从DB helper类返回到组件,sqlite,react-native,Sqlite,React Native,我正在使用sqlite,并创建了一个db帮助器类。我并没有从组件内的那个类获取数据,但如果我在db helper内安慰它,它工作正常,但在组件中不工作。我给出我的代码:- Cartdb.js。(辅助班) 组件中的代码: 我如何在这里获取数据?提前感谢。这是一个异步操作,这意味着它是一个承诺。最好的方法是将回调传递给函数,或者将db操作作为promise和chain返回。这里有一些关于javascript的文档 带有回调: class CartDB { constructor(){ } tota

我正在使用sqlite,并创建了一个db帮助器类。我并没有从组件内的那个类获取数据,但如果我在db helper内安慰它,它工作正常,但在组件中不工作。我给出我的代码:-

Cartdb.js。(辅助班)

组件中的代码:


我如何在这里获取数据?提前感谢。

这是一个异步操作,这意味着它是一个承诺。最好的方法是将回调传递给函数,或者将db操作作为promise和chain返回。这里有一些关于javascript的文档

带有回调:

class CartDB {
constructor(){

}
totalItems = 0;
checkCountOfProduct(callback){
    query = "SELECT SUM(count) AS product_count FROM Predefinedcart";
   db.transaction((tx) => {
        tx.executeSql(query, [], (tx, results) => {
            console.log(results.rows.item(0).product_count)
            this.totalItems = results.rows.item(0).product_count;
            callback(this.totalItems)
        }, function (tx, error) {
            console.log('SELECT error: ' + error.message);
        });
    })
}
}
class CartDB {
constructor(){

}
totalItems = 0;
checkCountOfProduct(){
    query = "SELECT SUM(count) AS product_count FROM Predefinedcart";
   return new Promise((resolve, reject) => db.transaction((tx) => {
        tx.executeSql(query, [], (tx, results) => {
            console.log(results.rows.item(0).product_count)
            this.totalItems = results.rows.item(0).product_count;
            resolve(this.totalItems);
        }, function (tx, error) {
            reject(error);
        });
    }))
}
}
在Comp中,您可以调用:
CartDB.checkCountOfProduct(count=>console.log(count))

承诺:

class CartDB {
constructor(){

}
totalItems = 0;
checkCountOfProduct(callback){
    query = "SELECT SUM(count) AS product_count FROM Predefinedcart";
   db.transaction((tx) => {
        tx.executeSql(query, [], (tx, results) => {
            console.log(results.rows.item(0).product_count)
            this.totalItems = results.rows.item(0).product_count;
            callback(this.totalItems)
        }, function (tx, error) {
            console.log('SELECT error: ' + error.message);
        });
    })
}
}
class CartDB {
constructor(){

}
totalItems = 0;
checkCountOfProduct(){
    query = "SELECT SUM(count) AS product_count FROM Predefinedcart";
   return new Promise((resolve, reject) => db.transaction((tx) => {
        tx.executeSql(query, [], (tx, results) => {
            console.log(results.rows.item(0).product_count)
            this.totalItems = results.rows.item(0).product_count;
            resolve(this.totalItems);
        }, function (tx, error) {
            reject(error);
        });
    }))
}
}
在Comp中调用:
CartDB.checkCountOfProduct()。然后(count=>console.log(count))