Добрый день! Имеется функция (метод) add() в главном компоненте SmallApp. Вызывается эта функция в другом компоненте - AddComponent.
Если использовать функцию dispatch хранилища непосредственно через свойства компонента, то код работает нормально и данные сохраняются в state через редьюсер - this.props.store.dispatch(increase_number(this.props.current_number + value))
Однако мне хочется использовать в коде только создатель действия - increase_number без обращения к функции dispatсh через свойства хранилища - increase_number(this.props.current_number + value). Как это сделать? При использовании функции mapDispatchToProps в connect, компонент не рендерится...
SmallApp.js
// import...
class SmallApp extends React.Component {
constructor(props){
super(props)
this.add = this.add.bind(this)
}
add(value){
this.props.store.dispatch(increase_number(this.props.current_number + value))
}
render(){
const {add} = this
return (
<div>
<AddComponent add = {add} />
</div>
)
}
}
const mapStateToProps = (state) => {
return {
current_number: state.current_number
}
}
const mapDispatchToProps = dispatch => {
return {
increase_number: (value) => dispatch(increase_number(value))
}
}
export default connect(mapStateToProps,mapDispatchToProps)(SmallApp)
AddComponent.js
// import...
const AddComponent = ({add}) => {
return (
<div>
<a onClick={() => add(10)}>Кликнуть!</a>
</div>
)
}
export default connect()(AddComponent)