gpt4 book ai didi

javascript - 如何在出现语法错误的循环中写入 "if"条件并更新列表中的一行

转载 作者:行者123 更新时间:2023-11-30 11:15:08 25 4
gpt4 key购买 nike

我被困在这之间了。我想循环检查 Prop 索引和 map 索引是否匹配然后更改值

但是,如果我执行以下操作,它会抛出指向 if 的语法错误,请让我知道出了什么问题,这超出了

 import React, {Component} from 'react';

更新.js

class UpdateItem extends Component{

constructor(props){
super(props);
this.state={editedVal:''};
//this.setState({editedVal:this.props.eVal});
this.handleSubmit=this.handleSubmit.bind(this);
this.handleChange=this.handleChange.bind(this);
}
handleChange(e)
{this.setState({

editedVal:e.target.value
});
//this.props.eVal=e.target.value;
}
handleSubmit(e){
e.preventDefault();
alert( this.state.editedVal);
alert(this.props.eIndx);
this.props.list.map((item,i)=>{if(this.props.eIndx===i)
{alert("s")}else{alert("sd")}});

}
render(){
return(
<div>
<form onSubmit={this.handleSubmit}>
<input type="text" value={this.state.editedVal?this.state.editedVal:this.props.eVal} onChange={this.handleChange}/>
<input type="submit" value="update"/>
</form>
</div>
);
}
}

export default UpdateItem;

添加列表.js

   class AdList extends Component{
constructor(props){
super(props);
this.state={value:'',disArrList:[],editVal:'',editIndx:''}
this.handleChange=this.handleChange.bind(this);
this.handleSubmit=this.handleSubmit.bind(this);
this.delItemRow=this.delItemRow.bind(this);
this.updateItemRow=this.updateItemRow.bind(this);
this.editItemValue=this.editItemValue.bind(this);

}

editItemValue(e)
{
alert("edit");
}

delItemRow(itemName)
{this.setState({disArrList:this.state.disArrList.filter(e1=>e1!==itemName)})
;

}

updateItemRow(itemName,itemId)
{
this.setState({editVal:itemName,editIndx:itemId});
alert(itemId +"==========="+itemName);
}


handleChange(e){
this.setState({value:e.target.value});
}

handleSubmit(e){
e.preventDefault();
//alert("submit"+this.state.value);
let mycolletion=this.state.disArrList.concat(this.state.value);
this.setState({disArrList:mycolletion});
}


render(){
return(
<div>
<div className="Todo">
<form onSubmit={this.handleSubmit}>
<input type="text" value={this.state.value} onChange={this.handleChange}/>
<input type="submit" value="Add" />
</form>
</div>
<div>
<DisplayList list={this.state.disArrList} removeItem={this.delItemRow} updateItem={this.updateItemRow}/>
</div>
<div>
<UpdateItem list={this.state.disArrList} editItem={this.editItemValue} eVal={this.state.editVal} eIndx={this.state.editIndx}/>
</div>

</div>
);
}
}

export default AdList;

最佳答案

if 是语句,不是表达式。您必须使用大括号箭头函数才能使用 if

this.props.list.map((item, i) => {
if (this.props.eIndx === i) {
alert("s");
} else {
alert("sd");
}
// map should always return something,
// or you'll end up with a list of `undefined`s.
//Otherwise use `forEach`.
return 'something';
});

关于javascript - 如何在出现语法错误的循环中写入 "if"条件并更新列表中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51920179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com