Можно ли сопоставить несколько элементов? - PullRequest
0 голосов
/ 14 марта 2020

Как я могу сделать карту с ценой и пользователем одновременно с компонентом пользователя? Я хотел бы передать цену компоненту User. И добавьте значение единой цены для одного пользователя.

import React from 'react';
import './Userbody.css';
import { useState, useEffect } from 'react';
import User from '../User/User';
import Cart from '../Cart/Cart';


const Userbody = () => {
    const [user, setUser] = useState([]);
    useEffect(() => {
        fetch('https://randomuser.me/api/?results=15')
            .then(res => res.json())
            .then(data => setUser(data.results))
    }, [])
    const [cart, setCart] = useState([]);
    const cartHandler = (user) => {
        const newCart = [...cart, user]
        setCart(newCart)
    }

    let price = [2332, 3183, 9392, 7387, 91822, 82823, 8281, 1123, 9283, 1098, 4323, 8764, 87387, 5746, 8492]

    return (
        <div className='row mt-5'>
            <div className="col-md-8">
                {
                    user.map(el => <User cartHandler={cartHandler} user={el}></User>)
                }
            </div>
            <div className="col-md-4">
                <Cart cart={cart}></Cart>
            </div>
        </div>
    );
};

export default Userbody;

1 Ответ

0 голосов
/ 14 марта 2020

Используйте index, второй параметр map замыкания:

user.map((user, index) => {
   const price = prices[index];
   return <User cartHandler={cartHandler} user={user} price={price} />
})
...