Skip to content

Commit 30688c8

Browse files
committed
asyncstorage
1 parent 83f2010 commit 30688c8

File tree

2 files changed

+37
-22
lines changed

2 files changed

+37
-22
lines changed

src/actions/Login.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as ActionTypes from '../constants/ActionTypes';
22
import { Actions } from 'react-native-router-flux';
3+
import { AsyncStorage } from 'react-native';
34

45
const isLogged = (bool) => {
56
return {
@@ -60,6 +61,7 @@ const login = (username, password) => {
6061
if(res.connected){
6162
dispatch(loginHasError(false));
6263
dispatch(isLogged(true));
64+
AsyncStorage.setItem('token', 'asdasdasd123'); // example
6365
Actions.Main();
6466
}
6567
})
@@ -71,6 +73,7 @@ const login = (username, password) => {
7173
};
7274

7375
const logout = () => {
76+
AsyncStorage.removeItem('token');
7477
Actions.Login();
7578
return {
7679
type: ActionTypes.LOGOUT

src/containers/index.js

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, { Component } from 'react';
22
import { Router, Scene } from "react-native-router-flux";
33
import { connect } from "react-redux";
44
import { AsyncStorage, Text } from "react-native";
5+
import Loader from './../components/Loader';
56

67
import Login from './../scenes/Login';
78
import Main from '../scenes/Main';
@@ -13,38 +14,49 @@ class Root extends Component{
1314
super(props);
1415

1516
this.state = {
16-
token: null
17+
token: null,
18+
isStorageLoaded: false
1719
}
1820
}
1921

2022
componentDidMount() {
2123
AsyncStorage.getItem('token').then((token) => {
22-
this.setState({ token: token !== null})
24+
this.setState({
25+
token: token !== null,
26+
isStorageLoaded: true
27+
})
2328
});
2429
}
2530

2631
render(){
2732
let { isLogged } = this.props.login;
28-
let { token } = this.state;
29-
return(
30-
<RouterWithRedux>
31-
<Scene key='root'>
32-
<Scene
33-
component={Login}
34-
initial
35-
hideNavBar={true}
36-
key='Login'
37-
title='Login'
38-
/>
39-
<Scene
40-
component={Main}
41-
hideNavBar={true}
42-
key='Main'
43-
title='Main'
44-
/>
45-
</Scene>
46-
</RouterWithRedux>
47-
)
33+
let { token, isStorageLoaded } = this.state;
34+
if(!isStorageLoaded){
35+
return (
36+
<Loader loading={true} />
37+
)
38+
}else{
39+
return(
40+
<RouterWithRedux>
41+
<Scene key='root'>
42+
<Scene
43+
component={Login}
44+
initial={!token}
45+
hideNavBar={true}
46+
key='Login'
47+
title='Login'
48+
/>
49+
<Scene
50+
component={Main}
51+
initial={token}
52+
hideNavBar={true}
53+
key='Main'
54+
title='Main'
55+
/>
56+
</Scene>
57+
</RouterWithRedux>
58+
)
59+
}
4860
}
4961
}
5062

0 commit comments

Comments
 (0)