Как отобразить объект вместо массива с помощью JSON API с помощью React JS + Redux - PullRequest
0 голосов
/ 02 декабря 2018

Я хочу отобразить поверх объекта вместо массива, мой текущий код прекрасно работает с картой массива, но я получаю данные неопределенными, если я сопоставляю объект с использованием состояния реквизита с избыточностью.

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);

Буду признателен, если кто-нибудь поможет мне отобразить это с помощью избыточности или другим способом.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...