Javascript 从状态数组中删除项,并将这些项添加到另一个状态数组中

Javascript 从状态数组中删除项,并将这些项添加到另一个状态数组中,javascript,html,reactjs,Javascript,Html,Reactjs,我想从状态数组中删除项,并将此项添加到另一个状态数组中 deleteItem = (id) => { this.setState(prevState => { const index = this.state.productData.findIndex(item => item.id === id); this.state.storeData[0].saveProducts.push(this.state.productData.slice(index, 1)) ret

我想从状态数组中删除项,并将此项添加到另一个状态数组中

deleteItem = (id) => {
this.setState(prevState => {
  const index = this.state.productData.findIndex(item => item.id === id); this.state.storeData[0].saveProducts.push(this.state.productData.slice(index, 1))
  return this.state.productData
 })
 }
Json StoreData,数组中对象的Saveproducts项

[ 
  { 
  "code": "f1", 
  "name": "storage-no-1", 
  "capacity": 125, 
  "temperture": -18,
  "humidity": 3 ,
  "saveProdoucts":[]
  }, 
 { 
  "code": "f2",
 "name": "storage-no-2",
 "capacity": 15, 
 "temperture": -18,
 "humidity": 25,
 "saveProdoucts":[]
  },
  {
   "code": "R3",
   "name": "storage-no-3", 
    "capacity": 40, 
    "temperture": 21,
    "humidity": 30,
     "saveProdoucts":[]
  } 
 ]

请检查下面的示例代码,单击每个项目后,它将从productData中删除该项目,并在storedData的saveProducts属性中添加相应的项目

我希望这能解决问题。请将代码保存在react local development中并尝试运行它

import React,{Component,Fragment}来自'React';
类应用程序扩展组件{
状态={
产品数据:[
{id:1,productName:“测试1”},
{id:2,productName:“测试2”},
{id:3,productName:“测试3”},
{id:4,产品名称:“测试4”}
],
storedData:[{saveProducts:[]}]
}
附加项=(id)=>{
const{productData}=this.state
this.setState(prevState=>({
productData:productData.filter(product=>product.id!==id),
存储数据:[
{
储蓄产品:[
…prevState.storedData[0]。保存产品,
…productData.filter(product=>product.id==id)
]
}
]
})
)
}
render(){
//解构
const{productData,storedData}=this.state
返回(
    {productData.map(产品=>{ 返回(
  • this.addItem(product.id)} key={product.id}> {product.productName}

  • ) })}
保存的产品 { storedData[0]。saveProducts.length是否大于0? storedData[0]。saveProducts.map(产品=>{ 返回(

{product.productName}

) }) : “未选择任何产品” } ); } }
导出默认应用程序请检查下面的示例代码,单击每个项目时,它将从productData中删除该项目,并在storedData的saveProducts属性中添加相应的项目

我希望这能解决问题。请将代码保存在react local development中并尝试运行它

import React,{Component,Fragment}来自'React';
类应用程序扩展组件{
状态={
产品数据:[
{id:1,productName:“测试1”},
{id:2,productName:“测试2”},
{id:3,productName:“测试3”},
{id:4,产品名称:“测试4”}
],
storedData:[{saveProducts:[]}]
}
附加项=(id)=>{
const{productData}=this.state
this.setState(prevState=>({
productData:productData.filter(product=>product.id!==id),
存储数据:[
{
储蓄产品:[
…prevState.storedData[0]。保存产品,
…productData.filter(product=>product.id==id)
]
}
]
})
)
}
render(){
//解构
const{productData,storedData}=this.state
返回(
    {productData.map(产品=>{ 返回(
  • this.addItem(product.id)} key={product.id}> {product.productName}

  • ) })}
保存的产品 { storedData[0]。saveProducts.length是否大于0? storedData[0]。saveProducts.map(产品=>{ 返回(

{product.productName}

) }) : “未选择任何产品” } ); } }

导出默认应用程序不改变状态。productData是一个由要使用id筛选数组的项组成的数组,则剩余项应保存在storeData[o].saveProducts数组中。这就是你要找的吗for@DILEEPTHOMAS我有一个产品列表,我想添加产品列表以存储组件,并进行系列验证:示例a=a b=b c=c。。可以,然后添加到Store@Dani我不明白你能解释一下吗it@Dani基本上,您正在尝试从产品中删除该项,并将其添加到StoredDataOn't mutate状态下的saveProducts数组中。productData是一个由要使用id筛选数组的项组成的数组,然后剩余项应保存在storeData[o]中.saveProducts数组。这就是你要找的吗for@DILEEPTHOMAS我有一个产品列表,我想添加产品列表以存储组件,并进行系列验证:示例a=a b=b c=c。。可以,然后添加到Store@Dani我不明白你能解释一下吗it@Dani基本上,您正在尝试从产品中删除该项并将其添加到storedDataComments中的saveProducts数组中,而不是用于扩展讨论;此对话已结束。@DILEEP THOMAS电子邮件id:amirradnia8@gmail.com@迪利普·托马斯,请发邮件给我,我是project@Dani请检查您的收件箱评论是否不用于扩展讨论;此对话已结束。@DILEEP THOMAS电子邮件id:amirradnia8@gmail.com@迪利普·托马斯,请发邮件给我,我是project@Dani请检查您的收件箱