zoukankan      html  css  js  c++  java
  • React-记connect的几种写法

    第一种

      最普通,最常见,delllee和官网第写法。

    import React, { Component } from 'react';
    import {connect} from 'react-redux';
    import { Button } from 'antd-mobile';
    import { addGunAction , removeGunAction , removeGunAsync}from './store/actionCreators'
    class App extends Component {
      render() {
        console.log();
        return (
          <div className="App">
            <p>{this.props.gun}</p>
            <Button type="ghost" size="small" inline onClick={this.props.handeladd}>+</Button>
            <Button type="ghost" size="small" inline onClick={this.props.handeljian}>-</Button>
            <Button type="ghost" size="small" inline onClick={this.props.handelmanjian}>慢-</Button>
          </div>
        );
      }
    }
    const mapStateToProps=(state)=>({
        gun:state.gun
    })
    const mapDispachToProps=(dispatch)=>({
        handeladd(){
          dispatch(addGunAction())
        },
        handeljian(){
          dispatch(removeGunAction())
        },
        handelmanjian(){
          dispatch(removeGunAsync())
        }
    })
    export default connect(mapStateToProps,mapDispachToProps)(App);

    第二种

      初次接触,感觉有点绕,不太好理解,为什么点击了,直接就派发action了?

    import React, { Component } from 'react';
    import {connect} from 'react-redux';
    import { Button } from 'antd-mobile';
    import { addGunAction , removeGunAction , removeGunAsync}from './store/actionCreators'
    class App extends Component {
      render() {
        console.log();
        return (
          <div className="App">
            <p>{this.props.gun}</p>
            {/*⚠️不用像第一种那样,点击调用一个方法,方法里再派发action
            这种直接点击派发action就可以*/}
            <Button type="ghost" size="small" inline onClick={this.props.addGunAction}>+</Button>
            <Button type="ghost" size="small" inline onClick={this.props.removeGunAction}>-</Button>
            <Button type="ghost" size="small" inline onClick={this.props.removeGunAsync}>慢-</Button>
          </div>
        );
      }
    }
    const mapStateToProps=(state,ownProps)=>({
        gun:state.gun
    })
    //⚠️这些action已经自动有了dispatch的功能
    const actionCreators={ addGunAction , removeGunAction , removeGunAsync}
    export default connect(mapStateToProps,actionCreators)(App);
  • 相关阅读:
    <<软技能,代码之外的生存技能>>读书笔记
    Pma模块详解,对用户登录linux等进行限制,密码修改限制等
    numpy pandas matplotlib
    numpy安装包scipy
    linux python 安装 nose lapack atlas numpy scipy
    kafka搭建
    实例化Bean的方法(基于xml配置)-http://blog.csdn.net/shymi1991/article/details/48153293
    转-Vue.js2.0从入门到放弃---入门实例(一)
    form表单传递对象数组
    使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html
  • 原文地址:https://www.cnblogs.com/superlizhao/p/9549248.html
Copyright © 2011-2022 走看看