我试图从项目列表中删除一个项目,但它似乎不起作用。我有一个页面,我可以在其中动态添加条目,也可以单独删除项目。添加似乎工作正常。沙盒:https : //codesandbox.io/s/angry-heyrovsky-r7b4k代码import React from "react";import ReactDOM from "react-dom";class App extends React.Component { constructor(props) { super(props); this.state = { value: "", values: [] }; } onChange = event => { this.setState({ value: event.currentTarget.value }); }; onAdd = () => { this.setState({ value: "", values: [...this.state.values, this.state.value] }); }; onRemove = index => { console.log(index); let { values } = this.state; let filteredIDs = values.splice(index, 1); this.setState({ values: filteredIDs }); }; render() { let { values, value } = this.state; return ( <> <input required placeholder="xyz@example.com" value={value} onChange={this.onChange} /> <button onClick={this.onAdd}>Add</button> <div> <ul className="email-list-holder wd-minus-150"> {values.map((value, index) => ( <li key={index}> {value} <button onClick={() => this.onRemove(index)} style={{ cursor: "pointer" }} > Remove </button> </li> ))} </ul> </div> </> ); }}
3 回答
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
哈士奇WWW
TA贡献1799条经验 获得超6个赞
let filteredIDs = values.splice(index, 1); 删除后返回已删除的项目 values
你会想要
onRemove = index => {
let { values } = this.state;
values.splice(index, 1);
this.setState({
values
});
经过测试并适用于您的代码和盒子:p
添加回答
举报
0/150
提交
取消