如何在道具数组中水平显示我的值

时间:2019-05-26 14:54:05

标签: javascript reactjs

在我的React项目中,我必须从父组件中获取一个数组,然后将其水平打印在子组件(PrintHorizo​​ntal)中。

我正在使用map函数,该函数垂直显示我的值,所以我写了join来合并数组值,但是得到了不同的值。印刷是我的孩子组成部分

props.values=[
   {
    id:1,
    x:1
   },
   {
    id:1,
    x:1
   }
 ]

PrintHorizontal Component:
const PrintHorizontal = props => {  
let list=props.values.map(value => {      
    return <Print key={value.id} data={value.x} />
 });
return (
    <div>
        {list.join(' , ')}
    </div>
)
}

Print Component:
const Print = props => {
    return (
        <div>
            <Avatar>{props.data}</Avatar>  //Avatar is a component imported from materialUI
        </div>
    )
}

我希望运行值可以水平打印,而不是 [对象对象],[对象对象]

2 个答案:

答案 0 :(得分:0)

您的Print组件包裹在div中,而且看来Avtar组件添加了它自己的div,因此您可以简单地从打印中返回Avtar,并使用display:flex将其水平对齐到父div。

const PrintHorizontal = props => {
return (
    <div className="horizontal">
        { props.values.map(value => {
            <Print key={value.id} data={value.x} />
        })}
    </div>
)
}

const Print = props => {
    return (
            <Avatar>{props.data}</Avatar>  //Avatar is a component imported from materialUI
    )
}

在您的CSS文件中

.horizontal {
    display: flex;
    align-item: center;
}

答案 1 :(得分:-1)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        main = () => {
            const arr = [1, 2, 3, 4];
            const list = arr.map(item => {
                const node = document.createElement('span');
                node.innerHTML = item * 2; 
                node.style.margin = '20px';
                return node;
            });

            list.forEach(element => {
                document.getElementById("target").appendChild(element)
            })
        }
    </script>
</head>

<body onload="main()">
    <div id="target"></div>
</body>

</html>