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);
  • 相关阅读:
    2015多校.Zero Escape (dp减枝 && 滚动数组)
    UVa-11809
    UVa-1588 Kickdown
    UVa-1587
    UVa-10340
    UVa-202
    UVa-1368
    UVa-232 Crossword Answers
    UVa-227
    UVa-455 Periodic Strings
  • 原文地址:https://www.cnblogs.com/superlizhao/p/9549248.html
Copyright © 2011-2022 走看看