在Connect函数中有两个主要的参数就是
其中前者很好理解,是返回一个Object 例如
const mapStateToProps = (state, ownProps) => {
  let obj = {
    count: state.count + ownProps.count
  }
  //返回一个新的Object作为Component的Props
  return obj
}
    返回的Object中的key(例如上文中的count)是可以在Component里通过 this.props.count 来调用的
而mapDispatchToProp常规的写法应该是返回一个Object,这个Object与 mapStateToProps 的返回值不同的是
它的value并不是一个固定值,而是一个返回值为dispath()方法的回调函数const mapDispatchToProps = (dispatch, ownProps) => {
  let actionObject1 = actions.increase(...args);
  let actionObject2 = actions.decrease(...args);
  return {
    increase: ()=>(dispatch(actionObject1)),
    decrease: ()=>(dispatch(actionObject2))
  }
    按照分析,mapDispatchToProps的返回值里的Value字段应该是由dispatch的结果
import {switchRightBar} from "../../actions/RightBar";
export connect(()=>({}), {switchRightBar})(UserBox);
    原因是官方文档中的
[mapStateToProps(state, [ownProps]): stateProps] (Function) [mapDispatchToProps(dispatch, [ownProps]): dispatchProps] (Object or Function)
mapStateToProps 只能是Function,而mapDispatchToProps既可以是Function,也可以是Object
所以说如果connect第一参数要传空,要使用 ()=>({})
MD。。。我讨厌JS。。。。写法规范这么复杂