如何使用 bindActionCreators 传递值?

how to pass value with bindActionCreators?

到目前为止,我一直在处理两种 mapDispatchToProps :

一个:

function mapDispatchToProps(dispatch) {
  return {
    fetchgadata: bindActionCreators(fetchgadata, dispatch)
  };
}

两个:

const mapDispatchToProps = (dispatch) => {
  return {
    onTimeChange: (e) => {dispatch (onSetTimeRange(e.target.value));},    
  };
};

我想做的是使用 e.target.valuebindActionCreators。那么,如果我想在其中包含 e.target.value 并将此值传递给我的 fetchgadata 动作创建者,我应该如何重构上面的第一个 mapDispatchToProps

我正在学习,所以我希望我的问题很清楚。如果没有,请帮助我改进它!谢谢。

不传递事件参数,而是传递 e.target.value。该值将是动作创建者中的第一个参数。组件代码应为:

handleSubmit(e) {
  this.props.onTimeChange(e.target.value);
}

您可以尝试以下方法:

function mapDispatchToProps(dispatch) {
  return {
    bindActionCreators({ 
      fetchgadata: function(e) {
        dispatch(onSetTimeRange(e.target.value));
      }
    }, dispatch)
  };
}

如果你想要更多的功能,你可以简化添加到底部并保持链接

如果你想使用 bindActionCreators ,你应该这样写:

function mapDispatchToProps(dispatch) {
  return {
    fetchgadata: bindActionCreators((event) => fetchgadata(event.target.value), dispatch),
  };
};