You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simply synchronize a component's state with localStorage, when available.
This is an old-style Mixin, which means it's probably compatible with your React application if it's a few years old. If you're a hip young programmer, you might prefer a hook, instead.
Install
npm i react-localstorage --save
Usage
A simple component:
constReact=require('react');constLocalStorageMixin=require('react-localstorage');constreactMixin=require('react-mixin');// This is all you need to do
@reactMixin.decorate(LocalStorageMixin)classTestComponentextendsReact.Component{staticdisplayName='TestComponent';state={counter: 0};onClick(){this.setState({counter: this.state.counter+1});}render(){return<spanonClick={this.onClick}>{this.state.counter}</span>;}}
Options
The key that state is serialized to under localStorage is chosen with the following code:
If you are synchronizing multiple components with the same displayName to localStorage,
you must set a unique localStorageKey prop on the component. You may set a function as well.
Alternatively, you may define the method getLocalStorageKey on the component's prototype.
This gives you the freedom to choose keys depending on the component's props or state.
To disable usage of localStorage entirely, pass false or a function that evaluates to false.
Filtering
If you only want to save parts of state in localStorage, set stateFilterKeys to an array of strings corresponding to the state keys you want to save.