Javascript 你能解释一下这个反应功能吗?
这是从电子商务网站产品页面的数据库中获取产品的功能 我正在尝试为登录编写一个类似的函数 你能帮我一下吗?我是新来的Javascript 你能解释一下这个反应功能吗?,javascript,reactjs,function,Javascript,Reactjs,Function,这是从电子商务网站产品页面的数据库中获取产品的功能 我正在尝试为登录编写一个类似的函数 你能帮我一下吗?我是新来的 storedProducts = () => { axios.get('http://127.0.0.1:5000/product') .then(res => { const storedProducts = res.data; let tempProducts = []; storedProducts.forEach(
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的当前项被克隆到一个新的对象项中。在下一行中,此单一项将附加到重新分配到tempProducts的新数组中。tempProducts是使用spread运算符创建的全新数组对象。粘贴的代码是将匿名箭头函数赋值给变量storedProducts 它似乎是从组件的类定义中删除的。组件是React javascript库的构建块,允许通过构建这些组件的树来构建UI,类似于HTML 与React相关的唯一部分是:
this.setState(()=>{
return {products:tempProducts};
});
它设置组件的状态,这通常会导致组件重新启动——
这整个街区都很奇怪,因为似乎没有必要。它接受一个数组res.data,我知道它是一个数组,因为forEach用于在下面的行中迭代它,这是一个数组方法,并迭代它的项,使用扩展语法const singleItem={…item}创建副本;按字面意思,将新对象指定给singleItem,并将该项的所有属性复制到其中。由于res.data已经是一个数组,因此可以直接使用它来设置组件的状态,如下所示:
this.setState(()=>{
return { products: res.data };
});
你到底想理解什么?除了设置一些组件状态,这是javascript。是否有更具体的问题和/或问题?storedProduct.forEach下发生了什么?它将所有storedProduct收集到一个数组中。由于storedProducts已经是一个阵列,所以这完全是一种过激行为。它还制作了每个项目的不必要的副本;大量不必要的浅层对象复制扩展语法…感谢您的解释。
this.setState(()=>{
return { products: res.data };
});