在mapDispatchToProps中传递事件对象和param

时间:2018-03-27 16:37:50

标签: javascript reactjs ecmascript-6 redux react-redux

我希望能够访问mapDispatchToProps中的事件对象以及发送参数。你是怎么做到的?

这是我到目前为止所做的:

const mapDispatchToProps = dispatch => ({
  onRowClick: (id, event) => {
     console.log(id, event)
  },
})

在视图中我有:

<TR key={`${index}`} onClick={() => onRowClick(id, event)}>

然而,这是不正确的。如何分派事件,传递参数,还可以访问事件对象?

4 个答案:

答案 0 :(得分:1)

让我告诉你why you shouldn't do it:

  

汇集SyntheticEvent。这意味着SyntheticEvent   对象将被重用,所有属性将在之后无效   已调用事件回调。这是出于性能原因。如   这样,你就无法以异步方式访问事件。

但是,如果您需要,可以这样做:

const mapDispatchToProps = dispatch => ({
  onRowClick: (id, event) => {
     console.log(id, event)
  },
})

<TR key={`${index}`} onClick={(event) => {
  event.persist(); // remove the synthetic event from the pool
  onRowClick(id, event);
}}>

答案 1 :(得分:0)

你必须mapDispatchToProps

connect的作用,正如其名称所示,将调度函数映射到道具

关于mapDispatchToProps和{{1}}

的更多信息,请阅读this

答案 2 :(得分:0)

您需要将此事件对象从onClick处理程序传递到onRowClick函数。像这样:

onClick={event => this.props.onRowClick(id, event)}

答案 3 :(得分:0)

您需要在箭头函数中指定事件参数:

onClick={(event) => onRowClick(id, event)}>

此外,您不应该在渲染函数中使用箭头函数