2.1.0 • Published 3 years ago
react-native-multiplatform-settings v2.1.0
react-native-multiplatform-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-multiplatform-settings 1.0.2
Setup
yarn add react-native-multiplatform-settings
react-native link react-native-multiplatform-settingsUsage
import Settings from 'react-native-multiplatform-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 | nullset()
static set(settings: { [key: string]: number | string | boolean | null } ) => voidwatchKeys()
static watchKeys(keys: string | string[], callback: () => any) => numberclearWatch()
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') || '[]')Help improve the code
Of course, feedback, PRs, and stars are also welcome 🙃
Thanks for your support!
License
The MIT License (MIT)
2.1.0
3 years ago