[英]Can you explain this react function?
这是 function 从数据库中获取电子商务网站产品页面的产品。
我正在尝试编写类似的 function 用于登录。
你能帮我解决一下我是新来的反应吗?
storedProducts = () => {
axios.get('http://127.0.0.1:5000/product')
.then(res => {
const storedProducts = res.data;
let tempProducts = [];
storedProducts.forEach(item => {
const singleItem = { ...item
};
tempProducts = [...tempProducts, singleItem];
});
this.setState(() => {
return {
products: tempProducts
};
});
})
}
在每次迭代中, storedProduct
的当前项被克隆到一个新的 object ( singeItem
) 中。 在下一行中,这个singleItem
被附加到一个重新分配给tempProducts
的新数组中。 tempProducts
是使用扩展运算符创建的全新数组 object。
您粘贴的代码是将匿名箭头 function 分配给变量storedProducts
。
它似乎是从组件的 class 定义中删除的。 组件是 React javascript 库的构建块,它允许通过构建这些组件的树来构建 UI,类似于 HTML。
处理与 React 相关的任何事情的唯一部分是这个:
this.setState(()=>{
return {products:tempProducts};
});
它设置组件的 state,这通常会导致组件重新渲染 – https://reactjs.org/docs/state-and-lifecycle.html
const storedProducts = res.data;
let tempProducts = [];
storedProducts.forEach(item => {
const singleItem = { ...item };
tempProducts = [...tempProducts, singleItem];
});
这整个块很奇怪,因为似乎不需要。 它需要一个数组res.data
(我知道它是一个数组,因为forEach
用于在下一行中迭代它,这是一个 Array 方法)并迭代它的项目,使用spread
语法const singleItem = {...item };
(字面意思是,将新的 object 分配给 singleItem 并将item
的所有属性复制到其中)。 由于res.data
已经是一个数组,因此可以直接使用它来设置组件的 state,如下所示:
this.setState(()=>{
return { products: res.data };
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.