mapDispatchToProps中的状态

时间:2017-04-11 16:34:49

标签: javascript reactjs redux state

我有:

const mapDispatchToProps = dispatch => (
  {
    slipsRadioClickHandler: (value) => {
      dispatch(slipsRadioClicked(value));
      switch (value) {
        case 'slips': {
          dispatch(requestSlips());
          dispatch(setExpandCollapse('slipsHide', true, 0))
          break;
        }
        default:
          break;
      }
    }
  }
);

但必须调度setExpandCollapse(' slipsHide',true,0)17次,这是List的长度。这份清单在该州。如何访问此列表以分发我的操作列表。长度时间?

1 个答案:

答案 0 :(得分:2)

mapDispatchToProps不是您应该拥有代码逻辑的地方。它旨在将动作绑定到组件的道具

更改它
const mapDispatchToProps = dispatch => (
  {
    slipsRadioClickHandler: (value) => {
         dispatch(slipsRadioClicked(value));
      },
    requestSlips: dispatch(requestSlips()),
    setExpandCollapse: () => {dispatch(setExpandCollapse('slipsHide', true, 0))}

  }
);

在组件中,您需要遍历mapStateToProps

提供给它的列表
var value = 'slips'    // set the value how you want to 

this.props.List.map(function(item){
     switch (value) {
        case 'slips': {
          this.props.requestSlips();
          this.props.setExpandCollapse();
          break;
        }
        default:
          break;
      }
})