• 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);
  • 相关阅读:
    python D20 多继承、C3算法、super()
    python D19 约束、日志
    python D18 反射与md5 加密
    python D17 类与类之间的关系
    python D16 成员
    python D15 面向对象
    python D14 内置函数二
    python D13 内置函数
    python D12 生成器以及生成器表达式
    oracle函数
  • 原文地址:https://www.cnblogs.com/superlizhao/p/9549248.html
Copyright © 2020-2023  润新知