javascript - 在 React 中从对象数组中渲染元素
问题描述
我正在尝试使用 React 渲染数组内部的对象。我想要实现的是创建一个将嵌套对象作为输入并返回对象的菜单。但是,第 62 行的返回函数没有返回const renderItems
const renderedItems
这应该渲染一切。请让我知道我什么时候去上班。任何帮助,将不胜感激。
<div id='root' class='container'></div>
<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
const starter = [{
"Item": "Warm spiced olives & prosciutto ",
"Price": "6",
"DescriptionPrimary": "Description One",
"DescriptionSecondary": "Description Two"
},
{
"Item": "Crusty sourdough bread (2pc)",
"Price": "9",
"DescriptionPrimary": "with a choice of garlic butter or olive oil and balsamic vinegar",
"DescriptionSecondary": "Description Two"
},
{
"Item": "Tasmanian oysters 6 or 12",
"Price": "12",
"DescriptionPrimary": "Natural $20.90/$39",
"DescriptionSecondary": "Kilpatrick(GF/DF) $24/$42"
},
{
"Item": "Rainbow trout paté (GF available)",
"Price": "15",
"DescriptionPrimary": "served with crusty sourdough",
"DescriptionSecondary": "Description Two"
}
];
function MenuItem(props) {
return (
<div className="menu-item">
<div className="item-title">
<div>{props.item}</div>
<div>{props.itemPrice}</div>
</div>
<div className="item-description">
<div>{props.itemDescriptionOne}</div>
<div>{props.itemDescriptionTwo}</div>
</div>
</div>
);
}
function ReturnMenu(props) {
const numbers = props.numbers;
const renderedItems = numbers.map((number) => {
<MenuItem item={number.Item} itemPrice={number.Price} itemDescriptionOne={number.DescriptionPrimary} itemDescriptionTwo={number.DescriptionSecondary}/>
console.warn("This was done")
});
// console.log(renderedItems.Item);
return (
<ul>{renderedItems}</ul>
);
// return "Task completed sucessfully!";
}
ReactDOM.render(
<ReturnMenu numbers={starter} />,
document.getElementById('root')
);
</script>
解决方案
如果你看这里,你忘记return
了价值。return
在之前添加一个<MenuItem
并将其放在它console
之前。:
const renderedItems = numbers.map((number) => {
console.warn("This was done");
return <MenuItem item={number.Item} itemPrice={number.Price} itemDescriptionOne={number.DescriptionPrimary} itemDescriptionTwo={number.DescriptionSecondary}/>;
});
推荐阅读
- php - 未定义的属性:stdClass::$salarie
- linux - 如何使用 bash/awk 在列中显示我的脚本的输出?
- python - 将名称附加到许多 __init__*.py 是如何工作的?
- python - aiohttp客户端连接错误,但是我可以在网上找到网站就好了?
- c++ - 我想知道如何在边缘添加名称?我是 Dijkstra 算法的新手
- python-3.x - 虚拟环境不会在 Windows 10 上创建
- java - 如何使用来自 Firebase 实时数据库的电子邮件检索数据?
- batch-file - 在引号内连接 Windows 批处理文件命令中的变量和字符串
- php - 无法添加默认标题图片
- python - 如何在 Keras (tensorflow) 中为 LSTM 正确塑造我的 2D 输入和输出?输入 3D 并输出一个热编码时产生错误