如何使用bindActionCreators传递值?

时间:2016-09-09 17:47:27

标签: reactjs react-redux

到目前为止,我一直在处理两种class A { hi(){ console.log('hi'); } } class B { bye(){ console.log('bye'); } } class C { hello(){ console.log('hello'); } } // x = A & B, not C x.hi(); x.bye(); x instanceof A // true x instanceof B // true x instanceof C // false // y = A & C, not B y.h1(); y.hello(); y instanceof A // true y instanceof B // false y instanceof C // true

一:

let a = new A();

if(a.isEnabled){
    let b = new B();
    magicFunctionOrSomething(a, b);
}

a.bye();

二:

mapDispatchToProps

我想要的是function mapDispatchToProps(dispatch) { return { fetchgadata: bindActionCreators(fetchgadata, dispatch) }; } const mapDispachToProps = (dispatch) => { return { onTimeChange: (e) => {dispatch (onSetTimeRange(e.target.value));}, }; }; 一起使用。那么如果我想在内部包含e.target.value并将此值传递给我的bindActionCreators动作创建者,我应该如何重构上面的第一个mapDispatchToProps

我正在学习,所以我希望我的问题很明确。如果没有,请帮我改进!感谢。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

您可以尝试以下操作:

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

如果需要更多功能,可以简单地添加到底部并保持链接