У вас пока не пришел ответ от сервера - нет никаких категорий. Передается
undefined.
Одно из многочисленных решений проблемы:
{isFetching ? <Preloader /> : this.renderContent()}
где renderContent метод отрисовывающий зависимый от данных контент вашей страницы.
Вы передаете в компонент
Recommended ключ
isReady(обратный isFetching), который не используете.
{isReady ? this.renderContent() : <Preloader />}
Еще по-хорошему у данных должно быть начальное состояние. В случае категорий - пустой массив.
Не ясно почему вы делаете запрос в нерекомендованном к использованию методе
componentWillMount, а не используете
middleware вроде
redux-thunk.
Добавлять ключу элемента списка префикс
'category-key-'
- бессмысленно.
Обращения вроде
catItem['category_name']
так же выглядят странно.
Код:
const mapDispatchToProps = dispatch => ({
setProducts: products => dispatch(setProducts(products)),
setFilter: filter => dispatch(setFilter(filter)),
});
можно сократить до:
const mapDispatchToProps = {
setProducts,
setFilter,
};
Еще, лучше используйте отступ в два пробела вместо четырех. Читать код будет гораздо приятней.