В своем приложении я использую встроенный поток реакции на маршрутизатор для навигации по маршрутизатору.А для доступа к некоторым переменным состояния я использую redux и response-redux.
Используя приведенный ниже оператор, в моем приложении прекрасно работает функциональность redux.
export default connect(mapStateToProps,mapDispatchToProps)(ComponentName);
Есть ли способ использоватьmapStateToProps в самом файле App.js?
Я использую пакетact-native-i18n npm для языкового перевода в моем приложении.И я храню текущий язык в магазине редуксов.Таким образом, если я изменю язык в своем приложении, переменная в хранилище приставок будет изменена, и это изменение будет отражено на всех экранах.Но изменение языка не отражается на заголовках и навигаторах вкладок, потому что оно находится в моем файле app.js.
Как прослушать изменение состояния в файле app.js?
PFA myФайл App.js и файл примера файла (Screen2.js).
Заранее спасибо !!!
Файл App.js:
import React, { Component } from 'react';
import { Provider,connect } from 'react-redux';
import I18n from './locale/i18n';
import store from './Reducers/index';
import { Actions, ActionConst, Router, Scene } from 'react-native-router-flux';
const ConnectedRouter = connect()(Router);
let Scenes = Actions.create(
<Scene key="root">
<Scene key='Screen1' hideNavBar title='Screen1' component={Screen1}></Scene>
<Scene key="tabbar" tabs={true}>
<Scene key="tab1" title={I18n.t('TabTile1')} icon={CustomComponenet} initial>
<Scene key="Screen2" component={Screen2} title="Screen2" initial/>
<Scene key="Screen3" component={Screen3} title="Screen3"/>
</Scene>
<Scene key="tab2" title={I18n.t('TabTile2')} icon={CustomComponenet} initial>
<Scene key="Screen4" component={Screen4} title="Screen4" initial/>
<Scene key="Screen5" component={Screen5} title="Screen5"/>
</Scene>
</Scene>
</Scene>
)
export default class App extends Component {
render() {
return(
<Provider store={store}>
<ConnectedRouter scenes={Scenes} />
</Provider>
)
}
}
Screen2.js:
import React from 'react';
import I18n from '../locale/i18n'
import { Actions} from 'react-native-router-flux';
import { connect } from 'react-redux';
import * as actions from '../Actions/ActionTypes'
class Dashboard extends React.Component{
render(){
I18n.locale = this.props.language;
return(
<View>.....</View>
)
}
const mapStateToProps = (state) => ({
language: state.Reducer.language,
});
export default connect(mapStateToProps)(Screen2);