action文件夹中的count.js
import { MODIFYCOUNT } from "../constant";
export const modifyCount=data=>({
type:MODIFYCOUNT,
data
})
reducers文件夹中中的count.js
import { MODIFYCOUNT }from '../constant.js'
const initState={
count:{
add:1,
sub:2,
},
}
export default function CountInfo(preState=initState,action){
const {type,data}=action;
console.log(type,data)
switch(type){
case MODIFYCOUNT:
return {...preState,count:data}
default:
return preState
}
}
reducers中的index.jsx
import {combineReducers} from 'redux';
import count_info from './count';
export default combineReducers({
count_info,
})
constant文件夹中
用于定义action对象中type类型的常量值,发送action的时候,每个reducer都会接收到action,所以type必须唯一,否则会造成reducer意外触发
export const MODIFYCOUNT='MODIFYCOUNT'
store文件夹中
import {createStore,applyMiddleware} from 'redux';
import reducer from './reducers'
import thunk from 'redux-thunk'
export default createStore(reducer,applyMiddleware(thunk))
项目中的具体使用
1.首先是引进redux
import { modifyCount } from "../../redux/actions/market.js";
this.props.modifyCount({
...this.props.count,
add:2
});
export default connect(
(state) => ({
count: state.count_info.count
}),
{ modifyCount }
)(Count);