函数传入javascript时如何分解对象数组
我试图用功能组件重写todo应用程序,但我想不出一种方法来分解对象的结构和数组。谢谢你的帮助 原始组件:函数传入javascript时如何分解对象数组,javascript,reactjs,destructuring,Javascript,Reactjs,Destructuring,我试图用功能组件重写todo应用程序,但我想不出一种方法来分解对象的结构和数组。谢谢你的帮助 原始组件: class ProductTable extends React.Component { render() { let rows = []; let lastCategory = null; this.props.products.forEach(function(product) { if (product.category !== lastCate
class ProductTable extends React.Component {
render() {
let rows = [];
let lastCategory = null;
this.props.products.forEach(function(product) {
if (product.category !== lastCategory) {
rows.push(<ProductCategoryRow category={product.category} key={product.category} />);
}
rows.push(<ProductRow product={product} key={product.name} />);
lastCategory = product.category;
});
return (
<table>
<thead>
<tr>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody>{rows}</tbody>
</table>
);
}
}
“限制”是什么意思?为什么不
ProductTable=(products=[])=>…
?很抱歉造成混淆。这是一个完整的示例。您需要类似于ProductTable=({products=[{stocked,name,price}]})
?那么您希望得到什么-一个数组库存
,另一个数组名称
等等?或者是一个数组产品
,其中的对象除了列出的属性外,其他属性都被删除了?无论如何,这是不可能的。您可以验证您的输入结构(我不建议在这里这样做),或者使用静态类型语言(例如typescript)。我想记录一个事实,products
是形式参数,它是一个产品对象数组,其结构是{stocked,name,price}
。只需添加文档注释:你说的“限制性”是什么意思?为什么不ProductTable=(products=[])=>…
?很抱歉造成混淆。这是一个完整的示例。您需要类似于ProductTable=({products=[{stocked,name,price}]})
?那么您希望得到什么-一个数组库存
,另一个数组名称
等等?或者是一个数组产品
,其中的对象除了列出的属性外,其他属性都被删除了?无论如何,这是不可能的。您可以验证您的输入结构(我不建议在这里这样做),或者使用静态类型语言(例如typescript)。我想记录一个事实,products
是一个形式参数,它是一个产品对象数组,其结构为{stocked,name,price}
。只需添加文档注释:
const ProductTable = ({products = []}) => {
let rows = [];
let lastCategory = null;
products.forEach(function (product) {
if (product.category !== lastCategory) {
rows.push(<ProductCategoryRow category={product.category} key={product.category} />);
}
rows.push(<ProductRow product={product} key={product.name} />);
lastCategory = product.category;
});
return (
<table>
<thead>
<tr>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody>{rows}</tbody>
</table>
);
};
const ProductTable = ({products = []}) => ...