Я хочу отобразить поверх объекта вместо массива, мой текущий код прекрасно работает с картой массива, но я получаю данные неопределенными, если я сопоставляю объект с использованием состояния реквизита с избыточностью.
My JSON Формат:
{
"exclusive_collection": {
"id": "0",
"image_url": "media/mobilebanner/default/ExclusiveCollection-en_new.jpg"
},
"exclusive_brands": [
{
"id": "1268",
"is_featured": "0",
"name": "Spongelle",
"image_url": "media/catalog/category/Spongelle.jpg"
},
{
"id": "756",
"is_featured": "0",
"name": "Black Up",
"image_url": "media/catalog/category/Black-Up.jpg"
},
],}
Функция редуктора:
export function items(state = [], action) {
switch (action.type) {
case 'ITEMS_FETCH_DATA_SUCCESS':
return action.items;
default:
return state;
}
}
Дочерний компонент:
import React, { Component } from 'react';
import Slider from "react-slick";
class ShopbyCategory extends Component {
render() {
let shopbycategoryArray = [];
let shop_by_category = this.props.items.shop_by_category
for (let key in shop_by_category) {
shopbycategoryArray.push(shop_by_category[key]);
return (
<section className="celebrityslider">
<div className="row">
<div className="widget-title"><h3>Shop By Category</h3></div>
</div>
<div className="row">
<div className="col-md-12 no-padding">
<Slider {...slidersettings}>
{this.props.items.shop_by_category.map((item) => (
<div key={item.id} className="slider-item">
<a href="#"><img src={item.image_url} className="img-responsive"/></a>
</div>
))}
</Slider>
</div>
</div>
</section>
);
}
if (this.props.hasErrored) {
return <p>Sorry! There was an error loading the items</p>;
}
if (this.props.isLoading) {
return <p>Loading…</p>;
}
return (
null
);
}
}
Я могу получить данные массива exclusive_brands с кодом выше в моем компоненте.
Но я не уверен, как получить данные exclusive_collection Я всегда получаю неопределенность, если я делаю следующее:
let exclusive_collection = this.props.items.exclusive_collection
console.log (exclusive_collection);
Буду признателен, если кто-нибудь поможет мне отобразить это с помощью избыточности или другим способом.Спасибо