嵌套提取Reactjs:按ID过滤

时间:2017-08-16 13:24:19

标签: javascript reactjs fetch

从这个问题开始,您将找到所需的所有代码:LINK TO PREVIOUS QUESTION我鼓励您在继续之前阅读上一个问题。

我希望通过消费者喜欢的产品来获取我获得的产品。

目前我可以在没有过滤器的情况下打印所有产品。问题是如何使用客户喜欢的产品过滤我获得的产品。

CAPTURE OF ALL THE PRODUCTS BEING DISPLAYED WITHOUT FILTER

这是我试图根据上一个问题的答案构建的嵌套提取,但我不知道我是否朝着正确的方向前进:

getEverything() {
        //FETCH DATA FROM getProducts
        fetch(
            DOMAIN+'/api/products/', {
                method: 'get',
                dataType: 'json',
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json',
                    'Authorization':'Bearer '+this.props.token
                }
            })
            .then((response) =>
            {
                return response.json();
            })
            .then((response1) => {
                //FETCH DATA FROM getCustomers
                fetch(
                    DOMAIN+'/api/customers/shop/'+this.props.salon, {
                        method: 'get',
                        dataType: 'json',
                        headers: {
                            'Accept': 'application/json',
                            'Content-Type': 'application/json',
                            'Authorization':'Bearer '+this.props.token
                        }
                    })
                    .then((response2) =>
                    {
                        return response.json();
                    })
                    .then((response3) => {
                        // filter response1 on the basis of response2
                        this.setState({states_changed_by_getProduct: response1});
                        this.setState({states_changed_by_get_customer: response2});
                        this.setState({desiredOutput: filteredOutput});
            })
    })
}

如何构建嵌套式抓取功能,以便根据消费者喜爱的产品过滤我的产品?

从fetch中获取并保存在this.state.products内的JSON对象如下所示:

Array(72)
0:
brand:{_id: "592d3092f42d775da9d38063", name: "Moroccanoil", __v: 0, created: "2017-05-30T08:42:58.242Z", photos: Array(0)}
created:"2017-06-14T18:46:52.508Z"
description:"Aporta una flexibilidad excepcional y proporciona un look hidratado y mate. Aplica una cantidad igual a la punta del dedo de esta arcilla filtrada, emulsiona entre las manos y distribúyela por el cabello. La fórmula de la arcilla purificada aporta al cabello textura y un acabado ligero y mate, y el Mineral Oil Finishing. Complex le proporciona un aspecto sano."
images:["https://storage.googleapis.com/magnifique-dev/olaplex 3.jpg"]
line:"Pruebadelproductolargo"
name:"Nombremuylargoaversicabe"
price:400
profile:"Decoloración"
salePrice:0
sex:["Mujer"]
size:"100 ML"
stock:400
videos:[""]
__v:19
_id:"5941849ce4fa0c7442b0f885"
__proto__:Object

客户端的所有最喜欢的产品都存储在数组favouritesProducts中的另一个对象中:

Array(22)
12:
app:{created: "2017-07-07T13:34:14.249Z"}
billingAddress:[]
cardLastNumbers:"5262"
cardSaved:"true"
created:"2017-06-30T09:51:59.869Z"
creditCard:
cardNumberSalt: 
expirationSalt:
email:"angel@magnifique.club"
eyebrowType:"Pobladas"
eyelashType:"Rectas"
favouritesProducts:
Array(1)
0:
"594186cee4fa0c7442b0f942"
length:1
__proto__:
Array(0)
favouritesServices:[]
hairColor:"Rubio"
hairState:"Dañado"
hairType:"Medio"
loginType:[]
nailPolish:"Semipermanente"
nailType:"Naturales"
name:"AngelFBMag"
payerSaved:"true"
phoneNumber:
pictures:[]
platform:undefined
salt:
sex:"Mujer"
shippingAddress:[{…}]
shop:{_id: "59108159bc3fc645704ba508", location: {…}, settings: {…}, customers: Array(0), __v: 0, …}
surname:"Marquez"
__v:13
_id:"59561f3f1d178e1966142ad7"
__proto__:Object

0 个答案:

没有答案