Saving data in local databases with AsyncStorage & React Native

Saving data in local databases with AsyncStorage & React Native

In this post we will give you information about Saving data in local databases with AsyncStorage & React Native. Hear we will give you detail about Saving data in local databases with AsyncStorage & React NativeAnd how to use it also give you demo for it if it is necessary.

In this tutorial, we’ll learn how to use AsyncStorage in React Native to save data in a database.

After creating and styling our list of data using the FlastList component and added two buttons for opening URLs with web browsers and saving article meta-data locally for reading later. Let’s see how to implement the functionality of the Read later button using the AsyncStorage module in React Native.

AsyncStorage is an asynchronous, unencrypted, persistent, key-value storage system for React Native that should be used instead of LocalStorage because it makes use of efficient data storage mechanisms such as files and database systems (SQLite).

On iOS, AsyncStorage stores small values in a serialized dictionary and larger values in separate files. On Android, AsyncStorage makes use of SQLite or RocksDB.

Head over to your terminal, make sure you are inside your React Native project and run the following command:

$ npm install @react-native-community/async-storage --save

You need to run the run-android (or run-ios) again, after installing async-storage:

$ react-native run-android

Next, open the App.js file and import AsyncStorage as follows:

import AsyncStorage from '@react-native-community/async-storage';

Next, add the following method:

const saveArticle = async (key, value) =>{  try {    await AsyncStorage.setItem(key, value);  } catch (e) {    console.log(e);  }};

At this point, before we implement the UI for displaying the bookmarks, we can make sure the values are properly stored in our local database using the following method:

const getAllData = () =>{  AsyncStorage.getAllKeys().then((keys) => {    return AsyncStorage.multiGet(keys)      .then((result) => {        console.log(result);      }).catch((e) =>{        console.log(e);      });  });}

You simply need to call it from the saveArticle() method as follows:

const saveArticle = async (key, value) =>{  try {    await AsyncStorage.setItem(key, value);    getAllData();  } catch (e) {    console.log(e);  }};

You also need to run the react-native log-android or react-native log-ios command to see the output of console.log() method in your terminal.

Next, now all you need to do is calling the saveArticle() method when pressing the Read later button. In your ArticleItem component, change the onPress prop of the second IconButton component as follows:

const ArticleItem = ({article}) => {  const { title, description, url, urlToImage } = article;  return (    <View style = { styles.articleContainer }>      <Image style={ styles.articleImage } source={{ uri: urlToImage }} />      <Text style= { styles.articleTitle }>        { title }      </Text>      <Text style = { styles.articleDescription }>        { description }      </Text>      <View style = { styles.articleBtns}>      <IconButton width= "50%" color = "white" bgcolor = "#ff5c5c" icon = { readIcon } onPress = { () => { console.log("Button pressed!")} } title = "Open" />      <IconButton width= "50%" color = "white" bgcolor = "#ff5c5c" icon = { bookmarkIcon } onPress = { () => { saveArticle(title, url); } } title = "Read later" />      </View>    </View>  )}

When the read later button is pressed, we call the saveArticle() method with the title as key and URL as value.

We’ll see in a next part how to create a component for displaying the bookmarked articles using the AsyncStorage.getAllKeys() and AsyncStorage.multiGet() methods.


Hope this code and post will helped you for implement Saving data in local databases with AsyncStorage & React Native. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US