当前位置 : 主页 > 网页制作 > React >

reactjs – React-Redux:找不到mapDispatchToProps方法

来源:互联网 收集:自由互联 发布时间:2021-06-15
我的印象是,添加到mapDispatchToProps的方法应该可以被this.props访问.当我调用这些方法时,会引发“未捕获的TypeError:this.props.onHighlight不是函数”. 有谁知道发生了什么?一直在为mapDispatch
我的印象是,添加到mapDispatchToProps的方法应该可以被this.props访问.当我调用这些方法时,会引发“未捕获的TypeError:this.props.onHighlight不是函数”.
有谁知道发生了什么?一直在为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);
    }
网友评论