【问题标题】:State inside mapDispatchToPropsmapDispatchToProps 内部的状态
【发布时间】:2017-04-11 16:34:48
【问题描述】:

我有:

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 的长度。此列表处于状态。我如何访问此列表以调度我的操作列表。长度倍?

【问题讨论】:

    标签: javascript reactjs redux state


    【解决方案1】:

    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;
          }
    })
    

    【讨论】:

      猜你喜欢
      • 2016-06-20
      • 2020-08-01
      • 2017-07-07
      • 2017-12-02
      • 1970-01-01
      • 2018-08-02
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多