首页 > 其他 > 详细

React Redux 记数器

时间:2019-02-05 19:59:33      阅读:166      评论:0      收藏:0      [点我收藏+]
npm init react-app counter
cd counter
npm install

src/index.js改为

import React from ‘react‘;
import { createStore } from ‘redux‘
import { connect, Provider } from ‘react-redux‘
import ReactDOM from ‘react-dom‘;
// action creator
const CountAction= {
    increment : {type: ‘INCREMENT‘},
    decrement : {type: ‘DECREMENT‘}
}
// reducer
function counter(state = 0, action) {
  switch (action.type) {
    case CountAction.increment.type:
      return state + 1
    case CountAction.decrement.type:
      return state - 1
    default:
      return state
  }
}
let store = createStore(counter)

// presentational component
const counterCreator = ({ number, onClick }) => 
   (
      <div>
        <div>{number}</div>
          <button onClick={() =>{onClick(‘increment‘)}}>
            Increase
          </button>
          <button onClick={() =>{onClick(‘decrement‘)}}>
            Decrease
          </button>
      </div>
    )

const mapStateToProps = state => {
    return {
        number: state
    }
}
const mapDispatchToProps = (dispatch) => { 
    return {
        onClick: clickType => {
            dispatch(CountAction[clickType])
        }
    }
}
// container
const Counter = connect(mapStateToProps, mapDispatchToProps)(counterCreator)

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

运行 npm start 效果如下:
技术分享图片

React Redux 记数器

原文:https://www.cnblogs.com/zhaofeng-shu33/p/10353010.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!