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