我有我需要获取的数据对象,如下所示:
const products = {
one: {
id: 1,
name: 'One',
image: oneImage,
chair: {
name: 'ChairName',
image: myImage,
colors: {
white: {
name: 'White',
image: myImage,
},
black: {
name: 'Black',
image: myImage,
},
},
},
},
},
two: {
id: 2,
name: 'Two',
image: twoImage,
chair: {
name: 'Chair,
image: myImage,
colors: {
white: {
name: 'White',
image: myImage,
},
black: {
name: 'Black',
image: myImage,
},
},
},
},
};
我正在使用 Object.value 获取它们
const ProductsData = Object.values(products).map((data) => {
return (
<>
<div className="box" onClick={() => setSelectedData(data)}>
<img src={data.image} />
</div>
);
});
上面的这段代码工作得很好,指出选定的数据是这样的:
{selectedData ? (
<h1>{selectedData.name}</h1>
) : null}
但是现在我想通过所选数据的椅子颜色进行映射,这会导致错误。
我试图做的是只是{selectedData.chair.colors.name}
,打印什么,并通过console.log
ISunderfined
如何打印椅子颜色的 selectedData 以及如何将选取的颜色设置为新的 selectedData?我迷路了。
如果要选择颜色,则需要将其存储在另一个状态变量中。
const [selectedColor, setSelectedColor] = React.useState();
使用Object.values
迭代chair.colors
{Object.values(selectedData.chair.colors).map(val => {
return <div onClick={() => setSelectedColor(val.name)}>{val.name}</div>
})
}
检查这个沙箱
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句