gpt4 book ai didi

database - React Native [iOS] 数据库选项

转载 作者:搜寻专家 更新时间:2023-10-30 20:35:06 25 4
gpt4 key购买 nike

我想在 React Native 中创建一个 iOS 应用程序,想知道什么是适合我的应用程序的最佳数据库选项。

该应用程序将由约 300 个数据对象支持,这些数据对象将作为 json 对象从远程服务器获取。这 300 个对象的属性存在一些差异。因此,我对建立一个不灵活的数据库模式犹豫不决。

理想情况下,我只想要 1 个具有 2 个属性的数据库:1)id(例如:从1到300)2)数据(例如:{"hello": "world"})

给出以上,对我应该使用什么样的 react-native 数据库模块有什么建议吗?

谢谢

最佳答案

根据我自己之前成功的react-native项目的经验,可以使用AsyncStorage,它简单但功能足够强大,你想存什么就存什么!

此外,您还应该使用fluxredux,它们将为您提供一个Store 解决方案,您可以在其中读取和存储相关数据轻松AsyncStorage(任何地方,每个页面)!

步骤是(主流关于如何组织数据和构造逻辑的想法):

0/导入库:

import React, { Component } from 'react';
import {
AsyncStorage,
// ...
} from 'react-native';

1/从您的 API 或某处(本地文件等)获取数据,然后将数据写入(保存)到 AsyncStorage:

async firstWriteFavorite() {
fetch("YOUR_API_URL", {method: "GET", headers: {'Cache-Control': 'no-cache'}})
.then((response) => response.json())
.then((responseJson) => {
try {
// make sure you write a STRING into AsyncStorage,
// and also be careful which key of the JSON should be written, the below line is just a good example:
await AsyncStorage.setItem("@PROJECT_NAME:your_favorite_array", JSON.stringify(responseJson.response));
// if you use flux or redux here, you can perform some action here, then you can load the data everywhere later:
// FavoriteActionCreators.set_favorite(responseJson.response);
} catch (error) {
console.log('AsyncStorage error: ' + error.message);
}
})
.catch((error) => {
console.log("Error in first getting ajax data!", error);
}
);

}

2/AsyncStorage中获取数据:

async loadFavorite() {
try {
var fav_array_string = await AsyncStorage.getItem("@PROJECT_NAME:your_favorite_array");
// the above returned value is a STRING, then you can split it, or do whatever based on the structure you have written
var real_fav_id_array = fav_array_string.split('YOUR_SEPARATOR');
// ...
} catch (error) {
console.log('AsyncStorage error: ' + error.message);
}
}

3/当你需要更新数据时,首先获取数据,然后将数据绑定(bind)到一个变量并对该变量进行更改,然后将新数据写入异步存储:

async saveFavorite() {
// loadFavorite() here,
// make sure you've got data "your_new_JSON_data" which has been converted into object, then maybe: "your_new_JSON_data.push({NEW_OBJ})";
// after that, SAVE NEW DATA now:
try {
await AsyncStorage.setItem("@PROJECT_NAME:your_favorite_array", JSON.stringify(your_new_JSON_data));
// same here, if you use flux or redux here, you can save the new data here:
// FavoriteActionCreators.set_favorite(your_new_JSON_data);
} catch (error) {
console.log('AsyncStorage error: ' + error.message);
}
}

以上代码是从我实际项目的代码中抄袭而来,有问题请尝试告诉我!

关于database - React Native [iOS] 数据库选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44016273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com