Launch Week Day 1: Socket for Jira Is Now Available.Learn More
Socket
Book a DemoSign in
Socket

react-native-global-store

Package Overview
Dependencies
Maintainers
0
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-global-store

A lightweight and efficient global state management solution for React Native with built-in AsyncStorage persistence.

latest
Source
npmnpm
Version
1.1.1
Version published
Maintainers
0
Created
Source

React Native Global Store

npmDownloads PRsBadge npmLicense npmVersion

Overview

React Native Global Store is a lightweight and efficient global state management solution for React Native with built-in AsyncStorage persistence. It provides an easy-to-use API for managing state globally without the complexities of Redux or Context APIs.

Features

  • No store configuration required.
  • No reducers or actions needed.
  • Pure JavaScript (TypeScript supported).
  • No middleware or dispatch complications.
  • Simple API similar to React's useState.
  • Easy connection with components using connect.
  • Functional component support with useGlobalStore.
  • Inspired by Redux but optimized for simplicity and performance.
  • Automatically persists selected state keys using AsyncStorage.

Installation

  • Install React Native Async Storage (required) if not already installed.
  • Install React Native Global Store:
npm install react-native-global-store

- OR -

yarn add react-native-global-store

No linking or Pods required. Ready to use!

Usage

GlobalStoreProvider

Wrap your app with GlobalStoreProvider to provide global state management.

Props

PropTypeDefaultDescription
initialStateobject{}Initial state for the store.
persistedKeysstring[][]Keys to persist in AsyncStorage.
loadingUIJSX.Element<View />UI to display while loading persisted state.
storageKeystring"GlobalStoreProvider"Unique key for AsyncStorage.

Example

import React from "react";
import { GlobalStoreProvider } from "react-native-global-store";
import App from "./App";

const myInitialState = { theme: "light" };

const Root = () => (
  <GlobalStoreProvider 
    initialState={myInitialState} 
    loadingUI={<LoadingComponent />} 
    persistedKeys={["theme"]}
  >
    <App />
  </GlobalStoreProvider>
);

export default Root;

useGlobalStore

A hook for accessing and updating the global state in functional components.

Example

import React from "react";
import { useGlobalStore } from "react-native-global-store";
import { Text, Button } from "react-native";

const MyComponent = () => {
  const [globalState, setGlobalState] = useGlobalStore();

  return (
    <>
      <Text>Current Theme: {globalState.theme}</Text>
      <Button title="Toggle Theme" onPress={() => 
        setGlobalState({ theme: globalState.theme === "light" ? "dark" : "light" })
      } />
    </>
  );
};

export default MyComponent;

connect

A higher-order component (HOC) for connecting class components to the global store.

Example

import React, { Component } from "react";
import { View, Text, Button } from "react-native";
import { connect } from "react-native-global-store";

class SettingsScreen extends Component {
  render() {
    const { theme, setGlobalState } = this.props;
    return (
      <View>
        <Text>Current Theme: {theme}</Text>
        <Button title="Toggle Theme" onPress={() => 
          setGlobalState({ theme: theme === "light" ? "dark" : "light" })
        } />
      </View>
    );
  }
}

export default connect(SettingsScreen);

License

MIT

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

Keywords

react

FAQs

Package last updated on 25 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts