Как я могу использовать redux для сохранения данных вact-native-sqlite-storage и AsyncStorage? - PullRequest
1 голос
/ 19 июня 2019

Я использую redux с react-native-sqlite-storage. Сначала мне нужно получить данные из вызова API, а затем сохранить их в локальной базе данных. Я могу получить данные, используя приставку. но как сохранить данные в реагировать-родной-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));
             }

           }
        });
      }

Теперь мой вопрос заключается в том, могу ли я использовать циклы в actionCreator и поместить весь код в actionCreator, прерывая процесс в STARTED, SUCCESS, FAIL. Или я не должен использовать избыточность при сохранении данных в локальном хранилище. Любая помощь очень ценится. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...