【发布时间】:2021-03-21 05:40:20
【问题描述】:
我正在尝试对我的对象数组进行排序,但它不起作用。有人能看出它为什么不起作用吗?
function App(){
let products = [
{
name: "LED",
price: 50000,
status: true,
image: "images/products/Krunch-Combo-kfc.png"
},
{
name: "Bike",
price: 40000,
status: false,
image: "images/products/Krunch-Combo-kfc.png"
},
{
name: "Mobile",
price: 60000,
status: true,
image: "images/products/Krunch-Combo-kfc.png"
},
{
name: "Apple Watch",
price: 6000,
status: true,
image: "images/products/Krunch-Combo-kfc.png"
}
];
return (
<div>
<ul>
{
products.sort((a, b) => parseFloat(a.price) - parseFloat(b.price))
}
</ul>
</div>
)
}
export default App;
这是我遇到的错误。 错误:对象作为 React 子对象无效(发现:对象带有键 {name, price, status, image})。如果您打算渲染一组子项,请改用数组。
【问题讨论】:
-
正如错误所说。无法渲染普通对象。弄清楚您希望对象如何显示。
-
你想渲染什么?每个项目的名称?如果是这样,您需要在 对象 数组上使用
.map()并返回一个可以呈现的元素,例如 JSX -
我想根据价格对我的对象进行排序。就像这样stackoverflow.com/questions/979256/…
-
它可以工作,但你不能渲染普通对象。使用 map 函数创建 JSX 元素数组
products.sort(...).map(item=><div>{item.name}:{item.price}</div>
标签: javascript reactjs ecmascript-6