记一次React_Redux的操作

MyComponent

import React, {Component} from 'react';

export default class MyComponent extends Component {
    render() {
        return (
            <div>
                <p>{this.props.count}</p>
                <button onClick={this.props.add}>加一</button>
                <button onClick={this.props.substract}>减一</button>
                <button onClick={this.props.toZero}>置零</button>
            </div>
        );
    }
}

reducer

function reducer(state={
    count:10
},action) {
    switch (action.type) {
        case 'add':
            return {
                ...state,
                count: state.count+1
            }
        case 'substract':
            return {
                ...state,
                count: state.count-1
            }
        case 'toZero':
            return {
                ...state,
                count: 0
            }
        default:
            return state
    }
}

export default reducer;

App

//state/props
import myComponent from "./myComponent";
import {connect} from 'react-redux'

function mapStateToProps(state) {
    return{
        count:state.count
    }
}

//function
function mapDispatchToProps(dispatch) {
    return{
        add:()=>dispatch({
           type:'add'
        }),
        substract:()=>dispatch({
            type:'substract'
        }),
        toZero:()=>dispatch({
            type:'toZero'
        })
    }
}


//connect  联系在一起的语法
const App = connect(mapStateToProps,mapDispatchToProps)(myComponent)

export default App

index

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import {Provider} from "react-redux";
import {createStore} from "redux";
import reducer from "./reducer";


//创造store工厂
const store = createStore(reducer)

ReactDOM.render(
    <Provider store={store}>
        <App />
    </Provider>,
    document.getElementById('root')
)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值