App.jsと同列に、store.jsを作成する
(プロジェクト名)/store.js
import {texts as reducer} from './reducers/texts';
import {createStore} from 'redux';
import {Provider} from 'react-redux';
const store = createStore(reducer);
export default store;
(プロジェクト名)/reducers/texts.js
const initialState = {
}
export function texts(state = initialState){
return state;
}
(プロジェクト名)/App.js
import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View } from 'react-native';
import store from './store';
import {Provider} from 'react-redux';
・・・・・・・・・①
export default function App() {
return (
<Provider store={store}>
<App style={styles.container}> ・・・②
<Text>{store.getState().text}</Text>
<StatusBar style="auto" />
</App>
</Provider>
);
}
const styles = StyleSheet.create({
container: {
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
App.jsに store.jsの内容をまとめることもできます。
すなわち、①の部分に、
import {createStore} from 'redux';
import {Provider} from 'react-redux';
const store = createStore(reducer);
export default store;
を追記するということです。こうするとstore.jsがフォルダからなくなります。
②はあえてわかりやすいように記載してますが、通常は下記のとおりです。
<Provider store={store}>
<View style={styles.container}> ・・・②
<Text>{store.getState().text}</Text>
<StatusBar style="auto" />
</View>
</Provider>