Я пытаюсь предоставить функциональность на своей веб-странице для редактирования данных состояния.
Вот структура состояния
state = {
eventList:[
{
name: "Coachella"
list: [
{
id: 1,
name: "Eminem"
type: "rap"
}
{
id: 2,
name: "Kendrick Lamar"
type: "rap"
}
]
}
]
}
Я хочу иметь возможность редактировать массивы списков, в частности идентификатор , имя и свойства типа, но моя функция, кажется, не редактирует их? В настоящее время я передаю данные, которые хочу переопределить имя и тип идентификатора с помощью переменной eventData, и значение идентификатора, указывающее, какая строка выбрана в таблице, которая выводит данные состояния.
Вот код функции:
editPickEvent = (eventData, id) => {
const eventListNew = this.state.eventList;
eventListNew.map((event) => {
event.list.map((single) => {
if (single.id == id) {
single = eventData;
}
});
});
this.setState({
eventList: eventListNew,
});
};
Когда я запускаю код, функция не изменяет одну переменную карты, и я не могу точно определить причину. Любая помощь будет отличной
edit:
Реализация решения Captain Mhmdrz_A
editPickEvent = (eventData, id) => {
const eventListNew = this.state.eventList.map((event) => {
event.list.map((single) => {
if (single.id == id) {
single = eventData;
}
});
});
this.setState({
eventList: eventListNew,
});
};
Я получаю новую ошибку с сообщением Cannot read список свойств undefined в другом файле, который использует функцию map для отображения данных состояния в таблицу?
Это часть другого файла, вызывающая ошибку:
render() {
const EventsList = this.props.eventList.map((event) => {
return event.list.map((single) => {
return (