React 教程第十二篇 —— Redux 跨组件通信入门之 combineReduce
发布时间:2020-12-15 06:26:35 所属栏目:百科 来源:网络整理
导读:结构 component1 actions.js reducer.js component1.js component2 actions.js reducer.js component.js redux store.js 组件 Component1 action.js export default { increment(){ return { type: "+" } },decrement(){ return { type: '-' } }} reducer.js
结构
组件 Component1action.jsexport default { increment(){ return { type: "+" } },decrement(){ return { type: '-' } } } reducer.jsexport default (state = 0,action) => { switch(action.type){ case '+': return state + 1; case '-': return state - 1; default: return state; } } component.jsimport React,{Component} from 'react' import Actions from './actions' import Reducer from './reducer' import store from '../../redux/configStore' import Component2 from '../cp2/cp2' export default class Component1 extends Component{ constructor(props){ super(props); this.state = {count: 0} } increment = () => { store.dispatch(Actions.increment()); this.setState({ count: store.getState().cp1 }) } render(){ return ( <div> <h3>component-cp1-{store.getState().cp1}</h3> <input type="button" value="increment" onClick={this.increment}/> <Component2 /> </div> ) } } 组件 component2action.jsexport default { increment(){ return { type: "+" } },{Component} from 'react' import Actions from './actions' import Reducer from './reducer' import store from '../../redux/configStore' export default class Component2 extends Component{ increment = () => { store.dispatch(Actions.increment()); this.setState({ count: store.getState().cp1 }) } render(){ return ( <div> <h3>component-cp2-{store.getState().cp2}</h3> </div> ) } } store.jsimport {createStore} from 'redux'; import { combineReducers } from 'redux'; import cp1 from '../components/cp1/reducer' import cp2 from '../components/cp2/reducer' const rootReducer = combineReducers({ cp1,cp2 }); const store = createStore(rootReducer) export default store; 小结通过共同调用
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |