【发布时间】:2020-04-04 19:33:45
【问题描述】:
我正在尝试在我的网页中提供用于编辑状态数据的功能。
这是状态结构
state = {
eventList:[
{
name: "Coachella"
list: [
{
id: 1,
name: "Eminem"
type: "rap"
}
{
id: 2,
name: "Kendrick Lamar"
type: "rap"
}
]
}
]
}
我希望能够编辑列表数组,特别是 id、name 和 type 属性,但我的函数似乎没有编辑它们?我目前传递数据,我想覆盖 id 名称并输入变量 eventData 和一个 id 值,指定在输出状态数据的表中选择哪一行。
功能代码如下:
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,
});
};
当我运行代码时,该函数不会改变单个映射变量,我似乎无法查明原因。任何帮助都会很棒
编辑:
实施 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,
});
};
我收到一个新错误,提示无法读取另一个文件中未定义的属性列表,该文件使用映射函数将状态数据呈现到表中?
这是另一个文件中导致错误的部分:
render() {
const EventsList = this.props.eventList.map((event) => {
return event.list.map((single) => {
return (
【问题讨论】:
标签: javascript reactjs state edit