import React, { Component } from 'react';
import { Button } from 'antd';
import { Menu, Dropdown, Icon } from 'antd';
import { Input } from 'antd';
import { List } from 'antd';
class TodoList extends Component {
state = {
input: '',
list: ['todo1', 'todo2']
}
render() {
return (
<div>
<Input
onChange={this.handleInputChange}
value={this.state.input}
/>
<Button
type="primary"
onClick={this.handleBtnClick}
>
click me
</Button>
<ul>
{
this.state.list.map((item, index)=> {
return (
<li key={index}
onClick={this.handleItemDelete}
>
{item}
</li>
)
})
}
</ul>
</div>
);
}
handleInputChange = (e)=>{
this.setState({
input: e.target.value
})
}
handleBtnClick = ()=>{
this.setState({
list: [...this.state.list, this.state.input],
input: ''
})
}
handleItemDelete = (index)=>{
const list = [...this.state.list]; // copy
list.splice(index, 1); // start from index, delete one element
this.setState({
list: list
})
}
}
export default TodoList;
Я новичок в React.
Я пишу TodoList.
Я уже знаю, что функцию нужно связать в компоненте, поэтому я использую функцию стрелки ES6, чтобы сделать то же самое.
handleItemDelete имеет привязку с помощью функции стрелки ES6, однако входной индекс неверен, иногда это не тот индекс, который должен быть. Я понятия не имею, где идет не так.
например.
todo1
todo2
todo3
Если нажать todo3, todo1 исчезнет.