Реальная проблема в том, что вы получаете ошибку до того, как ваш запрос запускается в Sidebar
компоненте. В вашем venue
объекте нет свойства groups, пока ваш запрос не будет выполнен.
Если вы добавите такую проверку в "tips"
случае, она должна работать хорошо:
const itemTips = venueTips.tips.groups ? venueTips.tips.groups[0].items : [];
Вы можете добавить groups
к вашему редуктору и проверить свойство length
или выбрать другой способ, например, обернуть все компоненты, включая компонент Sidebar
, и отобразить Loader
вместо них. Примерно так:
VenueDetail.js
{
(!isLoading && venue.id) ?
<React.Fragment>
<section className="venue">
<ImageList venueDetail={venue}/>
</section>
<div className="sidebar-wrapper">
<Sidebar type="tips" venueDetail={venue}/>
</div>
</React.Fragment> : <Loader/>
}
Здесь - это обновленные коды и окна.