Ожидаемый эффект: нажмите <li>
-> взять индекс -> отправить этот индекс компоненту Watch
.Когда я нажимаю <li>
, я беру индекс и перемещаю его в компонент Watch
.Однако, когда я нажимаю второй li
, он возвращает индекс того, на который я нажал в первый раз.Я думаю, что это потому, что он обновляет этот индекс через componentDidMount
.Как я могу ссылаться на этот индекс после componentDidMount
?
Todo
class Todo extends Component {
render () {
return (
<div className = "itemTodos" onClick={()=> this.props.selectTodo(this.props.index)}>
</div>
)
}
}
export default Todo;
Приложение
class App extends Component {
constructor(){
super();
this.state {
selectedTodoIndex: index
}
}
selectTodo = (index) => {
this.setState({
selectedTodoIndex: index
})
}
render () {
return (
<div>
<ul>
{
this.state.todos
.map((todo, index) =>
<Todo
key={index}
index={index}
todo={todo}
selectTodo ={this.selectTodo}
/>
)
}
</ul>
<Watch
selectedTodoIndex = {selectedTodoIndex}
/>
</div>
)
}
}
export default App;
Часы
class Watch extends Component {
constructor(){
super();
this.state = {
selectIndex: null
}
}
componentDidMount() {
this.setState({
selectIndex: this.props.selectedTodo
});
}
render () {
return (
<div>
</div>
)
}
}