react-native - 如何使用 redux 在 react-native-sqlite-storage 和 AsyncStorage 中保存数据?
问题描述
我正在redux
使用react-native-sqlite-storage
. 首先,我需要从 api 调用中获取数据,然后将其保存在本地数据库中。我可以使用 redux 获取数据。但是如何使用 redux 将数据保存在 react-native-sqlite-storage 中?我怎样才能让我的动作创建者?以下代码在不使用 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));
}
}
});
}
现在我的问题是我是否可以使用 actionCreator 中的循环并将整个代码放入 actionCreator 中,从而打破 STARTED、SUCCESS、FAIL 中的过程。或者我不应该在将数据保存到本地存储时使用 redux。非常感谢任何形式的帮助。提前致谢。
解决方案
推荐阅读
- groovy - 如何在soapUI中格式化rest Json响应?
- postman - 在 Postman 自动化测试中接收回调请求
- flutter - 如何在 Flutter 的 Scaffold 主体中与 MarkDown 一起添加额外的小部件?
- zeromq - 控制 ZMQ Streamer 设备上的流量的最佳实践?
- java - 我们什么时候需要使用@Transactional?
- node.js - Docker + node.js:无法生成 phantomjs (ENOENT)
- java - 使用 java api 嵌套构面
- django - 如果在 Django(使用 PostgreSQL 数据库)中超过 5 分钟(否则为 0),则以秒为单位获取记录的年龄
- java - 如何用 mockito 替换 dao 方法
- python-3.x - 执行此操作的最佳方法是用字符串中的“-”替换字符列表。?