Javascript 如何在react js中的对象数组中添加对象
我是新来的。这里是我尝试过的Javascript 如何在react js中的对象数组中添加对象,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我是新来的。这里是我尝试过的 onaddRow(e, id) { const addData = this.props.lowData; const tempObj = { id: 'L1', technologyId: 0, technology: '', type: '', numberOfQuestions: '' }
onaddRow(e, id) {
const addData = this.props.lowData;
const tempObj = {
id: 'L1',
technologyId: 0,
technology: '',
type: '',
numberOfQuestions: ''
}
addData.push(tempObj);
}
this.props.lowData是一个对象数组。所以,我想在这里添加一个对象
因此,我尝试了以下方法,但它不起作用,有人能建议我怎么做吗?使用addData.push()可以有效地将对象添加到数组中(如果props.lowData确实是一个对象数组),但是如果您在React环境中,那么您应该在this.setState({lowData:addData})之后执行此操作以触发组件的重新招标。您还可以使用符号(排列)
更新数组。
onaddRow(e, id) {
const tempObj = {
id: 'L1',
technologyId: 0,
technology: '',
type: '',
numberOfQuestions: ''
}
const addData = [...this.props.lowData, tempObj ];
console.log(addData)
}
//正如你在评论中所问的那样。若要从数组中删除项,可以执行以下操作
let updatedArrray = yourArray.filter(i => {
return i.id != passYourIdHere;
});
console.log(updatedArrray);
因此,这里我们将返回除匹配对象之外的所有其他对象,最后在UpdateDarray中收集。React使用单向数据流(从父对象到子对象)。在您的示例中,您从props中的父级接收数据。若要添加新对象,必须传递来自父对象的回调,这将把它添加到父状态
Child component:
onAddRow(e, id) {
const tempObj = {
id: 'L1',
technologyId: 0,
technology: '',
type: '',
numberOfQuestions: ''
}
this.props.onAddRow(tempObj)
}
Parent:
onAddRow = (newObj) => {
this.setState({
lowData: [...this.state.lowData, newObj]
})
}
render() {
<ChildComponent data={this.state.lowData} onAddRow={this.onAddRow} />
}
子组件:
onAddRow(e,id){
常数tempObj={
id:'L1',
技术ID:0,
技术:'',
类型:“”,
问题数:“”
}
this.props.onAddRow(tempObj)
}
起源:
onAddRow=(newObj)=>{
这是我的国家({
lowData:[…this.state.lowData,newObj]
})
}
render(){
}
您的示例看起来像是要添加到addData
对象,但在您的问题中,您说要添加到this.props.lowData
;你想添加到哪个?你确定this.props.lowData
是一个数组吗?是的,我的意思是相同的。是的,它是一个对象数组。你检查了OnAddressRow()
是否被正确调用了吗?因为函数体在我看来没问题。嗨,你的答案很完美。谢谢你。如果你没有任何问题,那么你能告诉我,如果使用Id,我现在如何从同一个元素中删除元素我的意思是我知道Id,如果它与Id匹配,那么删除该元素。你理解删除部分吗?是的,我理解