React native 如何使用redux在react原生sqlite存储和AsyncStorage中保存数据?

React native 如何使用redux在react原生sqlite存储和AsyncStorage中保存数据?,react-native,redux,middleware,asyncstorage,react-native-sqlite-storage,React Native,Redux,Middleware,Asyncstorage,React Native Sqlite Storage,我将redux与react-native-sqlite存储一起使用。首先,我需要从api调用中获取数据,然后将其保存在本地数据库中。我可以使用redux获取数据。但是,如何使用redux在react原生sqlite存储中保存数据?我怎样才能使我的行动创造者?下面的代码在不使用redux的情况下为我提供了所需的结果 foodTblCreate = () => { db.transaction(function(txn) { txn.executeSql(

我将
redux
react-native-sqlite存储一起使用。首先,我需要从api调用中获取数据,然后将其保存在本地数据库中。我可以使用redux获取数据。但是,如何使用redux在react原生sqlite存储中保存数据?我怎样才能使我的行动创造者?下面的代码在不使用redux的情况下为我提供了所需的结果

foodTblCreate = () => {
        db.transaction(function(txn) {
          txn.executeSql(
            "SELECT name from sqlite_master WHERE type='table' AND name='table_food'", [],
            function(tx, res) {
              alert(`table_food is : ${res.rows.length}`);
              if (res.rows.length === 0) {
                txn.executeSql('DROP TABLE IF EXISTS table_food', []);
                txn.executeSql(
                  "CREATE TABLE IF NOT EXISTS table_food(m_id INTEGER PRIMARY KEY AUTOINCREMENT, m_name VARCHAR(50), m_unit VARCHAR(250), cat_id VARCHAR(5), m_cal VARCHAR(6))",
                  [], 
                  (tx, results) => {  
                      for(var i=0; i<categoryArr.length; ++i) {
                        var cat_id = categoryArr[i].id;
                      for(var j=0;j<nutrition[cat_id].length; ++j) {
                        var m_name = nutrition[cat_id][j].name;
                        var m_unit = nutrition[cat_id][j].unit;
                        var cat_id = cat_id;
                        var m_cal = nutrition[cat_id][j].unit;
                        tx.executeSql(
                              "INSERT INTO table_food(m_name, m_unit, cat_id, m_cal) VALUES (?,?,?,?)",
                              [m_name, m_unit, cat_id, m_cal],
                              (tx, results) => {
                                 alert('tableFoodData : '+JSON.stringify(results));
                              }
                          );
                      } 
                    }
                    (error) => {
                      alert("Got an error in table_food"+JSON.stringify(error));
                      if (error) {
                         alert(JSON.stringify(error));
                      }
                  } 
                  }
                );
              }
            }
          );  
           (error) => {
             alert("Got an error"+JSON.stringify(error));
             if (error) {
                alert(JSON.stringify(error));
             }

           }
        });
      }
foodTblCreate=()=>{
数据库事务(功能(txn){
txn.executeSql(
“从sqlite_master中选择名称,其中type='table'和name='table'u food'”[],
功能(发送、恢复){
警报(`table_food is:${res.rows.length}`);
if(res.rows.length==0){
txn.executeSql('DROP TABLE IF EXISTS TABLE_food',[]);
txn.executeSql(
“如果不存在表格,则创建表格(m_id整数主键自动递增,m_名称VARCHAR(50),m_单位VARCHAR(250),cat_id VARCHAR(5),m_cal VARCHAR(6))”,
[], 
(tx,results)=>{
对于(var i=0;i{
警报(“在表_food中出错”+JSON.stringify(错误));
如果(错误){
警报(JSON.stringify(错误));
}
} 
}
);
}
}
);  
(错误)=>{
警报(“出现错误”+JSON.stringify(错误));
如果(错误){
警报(JSON.stringify(错误));
}
}
});
}
现在我的问题是,我是否可以使用actionCreator中的循环,并将整个代码放入actionCreator中,以开始、成功或失败的方式打破流程。 或者我不应该在将数据保存到本地存储时使用redux。非常感谢任何帮助。提前感谢