我正在尝试在用户点击它时从<ul>
删除该项目。这是我的List
组件:
class List extends Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(e) {
//What goes here?
}
render() {
const list = this.props.items.map((x, index) => {
return <li key={index} onClick={this.handleClick}>{index+1}. {x}</li>
});
return (
<ul className="list">
{list}
</ul>
)
}
}
handleClick
函数在用户点击其中一个<li>
元素时运行。如何获取调用该函数的元素的{index}
,然后使用它从数组中删除它?
答案 0 :(得分:1)
您可以使用JS#arrow function
与JS#function curry
一起使用。
const list = this.props.items.map((x, index) => {
return <li key={index} onClick={(index) => this.handleClick(index)}>{index + 1}. {x}</li>
});
这将创建一个新函数,使用给定的参数调用handleClick
handleClick:。
handleClick = (event) => { // get event
return function (indexLI) {
console.log(indexLI); //get index
//your logic to delete item for LI and update state here
}
}
handleClick
将同时具有用户定义的参数和事件对象