我的印象是,添加到mapDispatchToProps的方法应该可以被this.props访问.当我调用这些方法时,会引发“未捕获的TypeError:this.props.onHighlight不是函数”. 有谁知道发生了什么?一直在为mapDispatch
有谁知道发生了什么?一直在为mapDispatchToProps尝试一堆不同的替代品,但它们都不起作用.
import React from 'react'; import { addHighlight, deleteHighlight, selectHighlight } from 'actions/highlight'; import { connect } from 'react-redux'; import jquery from 'jquery'; import { styles } from './styles.scss'; const mapDispatchToProps = dispatch => { return { onHighlight: (start, end, selectedText) => { dispatch(addHighlight(start, end, selectedText)); }, onDeleteHighlight: (source) => { dispatch(deleteHighlight(source)); }, onSelectHighlight: (source) => { dispatch(selectHighlight(source)); } }; } const mapStateToProps = state => { return { highlights: state.highlights, currentTopic: state.currentTopic, selectedHighlight: state.selectedHighlight,}; } ... Other code about Highlight object ... export default connect( mapStateToProps, mapDispatchToProps )(Highlight);尝试使用 bindActionCreators:
import { bindActionCreators } from 'redux' const mapDispatchToProps = dispatch => { return bindActionCreators({ onHighlight: addHighlight, onDeleteHighlight: deleteHighlight, onSelectHighlight: selectHighlight }, dispatch); }