Skip to content

Instantly share code, notes, and snippets.

@linux08
Created September 7, 2018 23:38
Show Gist options
  • Save linux08/facdd4fb0e78d41ca10e0aed56e1f471 to your computer and use it in GitHub Desktop.
Save linux08/facdd4fb0e78d41ca10e0aed56e1f471 to your computer and use it in GitHub Desktop.
import React, { Component } from 'react';
import { AsyncStorage } from 'react-native';
export const MyContext = React.createContext();
export default class MyProvider extends Component {
state = {
token: '',
saveToken: async () => {
try {
const resp = await AsyncStorage.setItem('userToken', 'abc');
return resp;
}
catch (error) {
this.setState({ error })
}
},
removeToken: async () => {
try {
const resp = await AsyncStorage.removeItem('userToken');
return resp
}
catch (error) {
this.setState({ error })
}
},
getToken: async () => {
try {
const resp = await AsyncStorage.getItem('userToken');
return resp;
}
catch (error) {
this.setState({ error })
}
}
}
componentWillMount() {
AsyncStorage.getItem('userToken')
.then((token) => {
this.setState({ token })
})
.catch(error => {
this.setState({ error })
})
}
render() {
return (
<MyContext.Provider value={this.state}>
{this.props.children}
</MyContext.Provider>
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment