Ninety-nine Pitchers of Malt
Unleash awesomeness. Private packages, team management tools, and powerful integrations. Get started with npm Orgs »

react-native-cross-settings

2.0.1 • Public • Published

react-native-cross-settings

npm Version License

React Native Settings module for both Android & iOS.

If this library has helped you, don't forget to give it a star 🌟

IMPORTANT

v2.0 works with Gradle 4.4, the default in React Native 0.57. 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(keystring) => number | string | value | null
  • set()

    static set(settings{ [keystring]: number | string | boolean | null } ) => void
  • watchKeys()

    static watchKeys(keysstring | string[], callback: () => any) => number
  • clearWatch()

    static clearWatch(watchIdnumber) => 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...

Buy me a Coffee

Feedback, PRs stars, and smiles are also welcome :)

Thanks for your support!

License

The MIT License (MIT)

install

npm i react-native-cross-settings

Downloadsweekly downloads

2

version

2.0.1

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability