4
Мне кажется, что методы, добавленные в mapDispatchToProps, должны быть доступны с помощью this.props. Когда я вызываю эти методы, «Неподготовлено TypeError: this.props.onHighlight не является функцией». Кто-нибудь знает, что происходит? Пробовал кучу различных альтернатив для mapDispatchToProps, но никто из них не работает.React-Redux: 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);
две вещей, чтобы проверить: 1 - Убедитесь, что вы используете подключенную версию компоненты вместо случайного использования бессеансовых версий. 2- убедитесь, что 'this' на самом деле является вашим экземпляром компонента. Убедитесь, что вы не вызываете обработчик событий с 'this' unbound. Его трудно сказать больше, если вы не публикуете часть своего компонента и как вы пытаетесь называть 'onHighlight' – Brandon