1
0
mirror of synced 2024-11-24 07:10:15 +01:00
eAMEMu_RN/App.js
2020-05-28 01:37:15 +09:00

76 lines
1.6 KiB
JavaScript

/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* @format
* @flow
*/
import React from 'react';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import MainScreen from './src/screen/MainScreen';
import CardEditScreen from './src/screen/CardEditScreen';
import * as RNLocalize from 'react-native-localize';
import i18n from 'i18n-js';
import en from './src/locales/en';
import ko from './src/locales/ko';
const MainNavigator = createStackNavigator({
Home: {
screen: MainScreen,
navigationOptions: {headerShown: false}
},
CardEditScreen: {
screen: CardEditScreen,
navigationOptions: {headerShown: false}
},
},
{
initialRouteName: 'Home',
}
);
const AppContainer = createAppContainer(MainNavigator);
const setI18nConfig = () => {
const fallback = { languageTag: 'en' };
const { languageTag } = RNLocalize.findBestAvailableLanguage(['en', 'ko']) || fallback;
i18n.translations = {
en,
ko,
};
i18n.locale = languageTag;
};
export default class App extends React.Component{
constructor(props) {
super(props);
setI18nConfig();
}
componentDidMount() {
RNLocalize.addEventListener('change', this.handleLocalizationChange)
}
componentWillUnmount() {
RNLocalize.removeEventListener('change', this.handleLocalizationChange)
}
handleLocalizationChange = () => {
setI18nConfig();
this.forceUpdate();
};
render(){
return (
<>
<AppContainer/>
</>
);
}
};