react+react-redux+typescripte 之简单计数器

22 篇文章 0 订阅
4 篇文章 0 订阅
//compment
import React from 'react'
import { connect } from 'react-redux'
import store from '../../store'
import { TestAction } from '../../actions'
interface IProp{
  value:number,
  dispath: any
}
 class Home extends React.Component<IProp>{

  handleOnclick = () => {
    let {value} = this.props
    value+=1
    const action  = TestAction(value)
    this.props.dispath(action)
    console.log(this.props)
  }

  render(){
    return (
      <div>
        <div>{store.getState().value}</div>
        <button onClick = { this.handleOnclick }>点击我</button>
      </div>
      
    )
  }
}

const mapStateToProps = (state:any)=>{
    const { value } = state
    return {
      value
    }
}


const mapDispatchToProps = (dispath:any) =>{
  return {
    dispath
  }
}

export default connect(mapStateToProps,mapDispatchToProps)(Home)
//reducer
import { Action } from '../actions/index'

const initState = {
  value: 1
}

export function reducer(state = initState,action:Action){
  if(action.type === 'TestAction'){
      state.value = action.value
      return Object.assign({},state)
  }else{
    return state
  }
}
//action
export interface Action{
  type:string,
  value: any
}

export function TestAction(val:any):Action{
  return {
    type: 'TestAction',
    value: val
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有志青年(top)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值