gpt4 book ai didi

javascript - 使用键删除特定的 div

转载 作者:行者123 更新时间:2023-12-03 01:24:58 24 4
gpt4 key购买 nike

我有一个默认情况下有 2 个 div 的组件,并且有一个添加选项来添加其他 div。 (最多可以添加 2 个新 div)。我正在维护状态以添加或删除添加的 div。当我单击“添加选项”按钮时,我增加了在我的状态中设置的值,当我单击“删除”按钮添加或删除 div 时,我减少了该值。(每个添加的 div 都有一个删除按钮)我的问题在这种方法中,当我单击添加的 div 的“删除”按钮而不是我想要删除的 div 时,只有最后一个 div 被删除。如何使用键删除 div,以便我可以删除我想要的确切 div?

我的代码

html

for (let i = 3; i <= this.state.maxImage; i++) {
list.push(<div key={i}>{this.state.addOption > i &&
<div className="txt_vote_bar_div">

<div className="full_div right0" style={{width: '15px', height: '15px'}} id="close"
onClick={this.removetextpoll}>
<i className="fa fa-times float_right"/>
</div>

<Field name={`inputName${i}`} component="input" type="text" className="vote_input" placeholder={`Option ${i}`}
maxLength={textPollMaxLength}/>
</div>}
</div>
)
}

return (
<form onSubmit={this.props.handleSubmit}>


<div className="txt_vote_bar_div">
<Field name="inputName1" component="input" type="text" className="vote_input" placeholder="Option 1"/>
</div>

<div className="txt_vote_bar_div">
<Field name="inputName2" component="input" type="text" className="vote_input" placeholder="Option 2"/>
</div>

{list}


{this.state.addOption === 5 ? null :
<div className="txt_vote_bar_div" id="txt_vote_bar_div_create"
onClick={this.addOption}>
<span className="horiz_center font_bold" id="addOption">Add Option</span>
</div>
}
</form>

JS

constructor() {
super();
this.state = {
addOption: 3,
maxImage: 4,
optionBtn: true,

};
this.addOption = this.addOption.bind(this);
this.removetextpoll = this.removetextpoll.bind(this);

}

addOption() {
this.setState((prevState) => ({
addOption: ++prevState.addOption
}));

}

removetextpoll() {

this.setState((prevState) => ({

addOption: --prevState.addOption

}));

}

最佳答案

我认为最好在这样的状态下添加选项描述

this.state = {
addOption: 3,
maxImage: 4,
optionBtn: true,
fields: [
{ id: 1, name: 'SOME_NAME1', value: 'SOME_VALUE1', placeholder: 'SOME_PLACEHOLDER_VAL1' },
{ id: 2, name: 'SOME_NAME2', value: 'SOME_VALUE2', placeholder: 'SOME_PLACEHOLDER_VAL2' }
]
};

并通过 state.fields 数组内容渲染/添加/删除项目。

所以你可以通过这种方式删除项目

handleDeleteClick(idToDelete, event) {
/*delete from state by id*/
}

render() {
return(
this.state.fields.map((field) => {
return (
<Field
key={ field.id }
name={ field.name }
value={ field.value }
placeholder={ field.placeholder }
onDeleteClick={ this.handleDeleteClick.bind(this, field.id)}
/>)
})
);
}

关于javascript - 使用键删除特定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592677/

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