Ваша ошибка возникает из-за наличия bindActionCreators () внутри mapDispatchToProps (), что не является рекомендуемой практикой, поскольку mapDispatchToProps внутренне использует bindActionCreators.
bindActionCreators и mapDispatchToProps - они мне нужны?
Вы можете попробовать использовать функцию стрелки и диспетчеризировать действия непосредственно в методе mapDispatchToProps.
import * ACTIONS from './actions'
function mapDispatchToProps(dispatch) {
return {
carAction: (elem) => dispatch(ACTIONS.fetchCarAction(elem)) ,
dogAction: () => dispatch(ACTIONS.fetchDogAction())
}
}
//action creators import them into your component
export const fetchCarAction = (elem) => {
return {
type: ACTION_TYPES.CARACTION,
payload: elem
}
}
export const fetchDogAction = () => {
return {
type: ACTION_TYPES.DOGACTION,
}
}
//render method
<Title onClick={() => this.props.dogAction() }>HEllo</Title>
{cars.map((elem) =>
<Title onClick={() => this.props.carAction(elem) } key={elem.id}>{elem.mark}
</Title>
)}
Таким образом, в вашем рендере вы будете называть имя свойства в mapDispatchToProps, а не имя создателя действия. Я оставил имя создателей действия и имя свойств различными, чтобы вы могли видетьэтот.
Если вы хотите полностью работающее приложение «Реакция-редукция», вы можете проверить этот начальный проект, который я создал, и я получил хорошие отзывы об этом.
https://github.com/iqbal125/modern-react-app-sample