【发布时间】:2017-05-28 03:22:03
【问题描述】:
我有一个名为ButtonContainer 的容器组件,它将两位状态传递给按钮展示组件。问题是,容器需要传递一个使用 dispatch 的 onclick 函数,但我不知道如何访问它。请参阅下面的代码。我怎样才能获得调度?
ButtonContainer.jsx
import React from 'react'
import { connect } from 'react-redux'
import { fooAction , barAction } from '../foobarActions.js'
import ButtonComponent from './ButtonComponent.jsx'
const mapStateToProps = (state) => {
var buttonText = this.state.foo + this.state.bar
var buttonOnClick = function(e, coord) {
e.preventDefault()
if (e.nativeEvent.which === 1) { // left click
dispatch(fooAction);
} else if (e.nativeEvent.which === 3) {
dispatch(barAction); // right click
} else {
console.log("Unknown click");
}
}
return {
buttonText: buttonText
buttonOnClick: buttonOnClick
}
}
const mapDispatchToProps = (dispatch) => {
return {}
}
const ButtonContainer = connect(
mapStateToProps,
mapDispatchToProps
)(ButtonComponent)
export default ButtonContainer;
【问题讨论】:
-
为什么不通过
buttonOnClick和mapDispatchToProps?这是传递动作的首选方式。