Действительно, скорее всего это про организацию кода.
Если мы делаем наше react-приложение возможно, что однажды нам придётся изменить хранилище. Вообще дурной тон использовать dispatch в самом компоненте не обернув его в HOC. Ведь это сразу делает невозможным переиспользование. Например у нас есть компонент, который рендерит какой-то список и использует redux. Для того, чтобы мы могли его переиспользовать правильно сделать так:
import React, { Component } import 'react';
import List from './List'; // Список
import { connect } from 'react-redux'
import { mutatinList } from './actions'; // Какой-то action
class ListContainer extends Component{
render(){
return(
<List {...this.props} />
)
}
}
const mapStateToProps = (state) => ({
list: state.list
})
const mapDispatchToProps = {
mutatinList: mutatinList
}
export default connect(mapStateToProps, mapDispatchToProps)(ListContainer);
Если мы захотим переиспользовать наш спискок то нам не придётся переписывать сам компонент, а можем лишь написать новый HOC
Ещё по этой теме я написал небольшую
статью