Я делаю приложение todo, чтобы практиковать React. Я ударил блокиратор, и теперь я пытаюсь понять, как уникальным образом редактировать карту.
В настоящее время, когда я нажимаю на редактировать, все мои карты установлены на isEditing == true
. Я попытался добавить ключ и индекс, но, похоже, не могу однозначно идентифицировать выбранную карту.
Как видно в моем GIF:
Очевидно, что ожидаемый результат состоит в том, что он должен установить isEditing == true
только для выбранной карты.
См. Код ниже.
Для большего контекста: есть компонент с состоянием, который передает реквизиты этому компоненту, я использую react-bootstrap
(отсюда Panel
, Button
), и я удалил некоторые код для краткости (construct
и еще много чего).
edit() {
this.setState({
isEditing: true
})
}
renderEditDoneButtons() {
return (
<div>
<Button onClick={this.edit}>edit</Button>
</div>
)
}
renderNote(note) {
return (
<p> {note} </p>
)
}
renderCard(note, i) {
return (
<Panel key={i}
index={i}>
{
this.state.isEditing ?
this.renderForm() :
this.renderNote(note.note)
}
</Panel>
)
}
render() {
return (
<div>
{this.props.notes.map(this.renderCard)}
</div>
)
}