アプリケーションでこの3つのステップを実行することをお勧めします。AsyncStorageを使用して状態を自動的に読み込んで保存し、任意のコンポーネントでアクセスできます。
1)ロードするセットアップredux-persist/AsyncStorageにメイン/インデックスコンポーネントの設定の保存方法で自動的に状態
import { Provider } from 'react-redux';
import { persistStore, autoRehydrate } from 'redux-persist';
import { yourReducers } from './reducers';
const store = compose(
autoRehydrate()
)(createStore)(yourReducers);
2)を保存し、アプリケーションのレンダリングの前にロードされる状態を待つ
export default class index extends Component {
constructor(props) {
super(props);
this.state = { rehydrated: false };
}
componentWillMount() {
persistStore(store, {storage: AsyncStorage},() => {
this.setState({rehydrated: true});
});
}
render() {
if(!this.state.rehydrated)
return <View />;
else
return (
<Provider store={store}>
<YourLoginScreen-or-Router />
</Provider>
);}
}
3)これにより、LoginScreenが状態にアクセスし、状態がユーザーを含む場合は次の画面にユーザーを送信できます。これを行うにはルータを使用することをお勧めします。
import { Actions } from 'react-native-router-flux';
import { connect } from 'react-redux';
class LoginScreen extends Component {
...
componentWillMount() {
if (this.props.user !== null)
Actions.ShowScreenWhereUserIsLoggedIn(); //If you dont use react-native-router-flux change to your navigator
}
render() {
....
}
}
const mapStateToProps = ({ auth }) => {
const { user } = auth;
return { user };
};
export default connect(
mapStateToProps,{}
)(LoginScreen);
auth
はあなたがここにReduxの詳細を読むことができ、それがログインしているとき、あなたのuser
を保存し、画面
を切り替えるために、ルータ/ナビゲータを呼び出しますログイン/セッション減速です:http://redux.js.org/docs/basics/
アンドロイドでは、 'AsyncStorage'と非常に似ている' SharedPreference'を使うと、うまくいくはずです。 –
BTWの場合、リフィックスクリアストア?アプリをアンインストールするかアプリを終了するのですか? –
(アプリケーション - >アプリケーション - >データのクリア)またはアンインストールしない限り、アプリケーションが終了してもAsyncStorageは保持されます。 –