Есть некоторые проблемы с вашим кодом:
- Если вы сопоставили отправку с подпоркой, вы можете вызвать действие, выполнив
this.props.loadData(params)
- Вы не должны вызывать действие, выполняя это
loadData()()
, поскольку отправленное действие не возвращает функцию (не позволяйте этому обмануть вас, хотя исходное действие возвращает функцию).
Итак, чтобы использовать действие loadData()
, вам необходимо сопоставить его с реквизитом следующим образом:
const mapDispatchToProps = dispatch => ({
loadData: (name, calories, diet, health) => dispatch(loadData(name, calories, diet, health)),
});
Тогда используйте это так:
componentDidMount() {
this.props.loadData(name, calories, diet, health)
.then(() => console.log('Success'))
.catch(err => throw new Error("Error", err.stack))
}
Редактировать: Исходя из вашего вновь отредактированного вопроса, функция соединения в redux принимает mapStateToProps
и mapDispatchToProps
соответственно, поэтому в вашем коде должно быть:
export default connect(null, mapDispatchToProps)(Component)