react-native-cross-settings
v2.1.0
Published
React Native `Settings` module for both Android & iOS.
Downloads
306
Maintainers
Readme
react-native-cross-settings
React Native Settings
module for both Android & iOS.
If this library has helped you, don't forget to give it a star :star2:
Important
v2.1.0 works with Gradle 4.10.x, the default in React Native 0.58. If you are using Gradle 3.x please use react-native-cross-settings 1.0.2
Setup
yarn add react-native-cross-settings
react-native link react-native-cross-settings
Usage
import Settings from 'react-native-cross-settings';
// Set a listener. It will be called for *each* value that has changed.
const watchId = Settings.watchKeys('strvar', () => {
console.log('strvar changed.');
});
// If you never saved a value in "strvar", this is undefined.
console.log('restored setting:', Settings.get('strvar'));
// => undefined
// Store a value (only string, number, or boolean)
Settings.set({ strvar: 'First setting' });
console.log('new setting:', Settings.get('strvar'));
// => "First setting"
// You cann't remove a value, but you can set it to null.
// Next time your App start, the value will be undefined.
Settings.set({ strvar: null });
console.log('new setting:', Settings.get('strvar'));
// => null
// Store a new value, this will be preserved across sessions.
Settings.set({ strvar: 'final value' });
// => Don't forget to remove the listener
Settings.clearWatch(watchId)
API
See React Native Settings page, the API is the same.
Methods
get()
static get(key: string) => number | string | value | null
set()
static set(settings: { [key: string]: number | string | boolean | null } ) => void
watchKeys()
static watchKeys(keys: string | string[], callback: () => any) => number
clearWatch()
static clearWatch(watchId: number) => void
NOTE
In Android, valid value types to store are boolean
, string
, and number
.
If you pass null
as value, the key will be removed in the next session.
If you want to save other types use the appropriate conversion:
// Storing a Date object:
Settings.set({ myDate: new Date().toJSON() })
// Retrieve
const myDate = new Date(Settings.get('myDate'))
// Storing an array
Settings.set({ myArray: JSON.stringify([1,2,3]) })
// Retrieve
const myArray = JSON.parse(Settings.get('myArray') || '[]')
Support my Work
I'm a full-stack developer with more than 20 year of experience and I try to share most of my work for free and help others, but this takes a significant amount of time and effort so, if you like my work, please consider...
Of course, feedback, PRs, and stars are also welcome 🙃
Thanks for your support!
License
The MIT License (MIT)