在 RN 中如何使用 React-Redux
其实,在 RN 中使用 React-Redux 和 React 中类似,可以说一模一样
都是在根元素中使用,<Provider>
来包裹根组件,导入 store,将 store 挂载在 Provider
上。
代码的结构:
.
├── src # 程序源文件夹
│ ├── pages # 主要的页面,文件夹
│ ├── navigation # 页面的导航,文件夹
│ ├── redux # redux,文件夹
│ └── App.js # 根组件,文件
└── index.js # 程序入口文件
index.js 代码:
import {
AppRegistry} from 'react-native';
import App from './src/App';
import {
name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
App.js 代码:
import React, {
Component} from 'react';
import store from './redux/store';
import AppNavigation from './navigation/AppNavigation';
import {
Provider} from 'react-redux';
export default class App extends Component {
render() {
return (
<Provider store={
store}>
<AppNavigation />
</Provider>
);
}
}
其中 AppNavigation 是导航(react-navigation)
AppNavigation.js 代码:
import {
createAppContainer} from 'react-navigation';
import {
createStackNavigator,
StackViewStyleInterpolator, // 这个是一个页面的弹出的方向,安卓默认是从下到上,这个就将方向改为从左往右
} from 'react-navigation-stack';
import Book from '../pages/'; // 如果你的文件名为 index.js 会默认加载这个文件
import Add from '../pages/otherPage/add';
import AlterColor from '../pages/otherPage/alterColor';
const stack = createStackNavigator(
{
Book: {
screen: Book,
navigationOptions: {
header: null,
},
},
Add: {
screen: Add,
},
AlterColor: {
screen: AlterColor,
},
},
{
transitionConfig: () => ({
screenInterpolator: StackViewStyleInterpolator.forHorizontal,
}),
},
);
export default createAppCon