redux计时器案例

import React, { Component } from 'react'
import PropTypes from 'prop-types'
import ReactDOM from 'react-dom'
import { createStore } from 'redux'
import { Provider, connect } from 'react-redux'
import {Button} from 'antd';

// Map Redux state to component props
function mapStateToProps(system) {
  return {
    value: system.count
  }
}
// Map Redux actions to component props
function mapDispatchToProps(dispatch) {
  return {
    onIncreaseClick: () => dispatch(increaseAction),
    onStopClick:()=>dispatch(onStopAction)
  }
}

class Reduxs extends Component {
    static get propTypes() {
        return {
            system: PropTypes.object,
        };
    }
     // 初始化页面
    constructor(props, context) {
        super(props)
        this.state={
            isdisabel:false
        }
    }
    render() {
        const { value, onIncreaseClick,onStopClick } = this.props
        const isdisabel=value===0?true:false;
        return (
        <div style={{width:"200px",margin:"50px auto 0px auto"}}>
            <p className="mb20">{value}</p>
            <Button onClick={onIncreaseClick} className="mr20">计数</Button>
            <Button onClick={onStopClick} disabled={isdisabel}>停止计数</Button>
        </div>
        )
    }
}


// Action
const increaseAction = { type: 'increase' }
const onStopAction={type: 'stopincrease'}
// Reducer
function counter(state = { count: 0 }, action) {
  const count = state.count
  switch (action.type) {
    case 'increase':
      return { count: count + 1 }
    case 'stopincrease'  :
     return {count:0}
    default:
      return state
  }
}

// Store
const store = createStore(counter)





// Connected Component
const App = connect(
  mapStateToProps,
  mapDispatchToProps
)(Reduxs)

export default class Redux  extends React.Component {
    render(){
        return (
            <Provider store={store}>
               <App />
            </Provider>
        )
    }
}

 

转载于:https://www.cnblogs.com/webqiand/articles/11136561.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值