【发布时间】:2021-06-08 07:11:09
【问题描述】:
基本上我有一个包含项目行的表格。这些行有 4 个包含文本的单元格。您可以从右侧 -> 左侧的行中删除单元格/文本。因此,“1 2 3 4”可以是“1 2 3 -”,例如,如果您从右 -> 左删除单元格/文本。
这是我的 reducer 代码,我还必须删除整个行,因为上面示例中的“1”也被删除了。这只是为了让我不想让一行可见,例如“- - - -”,它可以在那时删除整行。所以这是我的代码:
case DELETE_SITE: {
return {
...state,
siteRows: state.siteRows.map((s) => {
if (s.siteLevel2Id && s.siteLevel2Id == action.payload.id)
//return {...s, siteLevel2Id: null, siteLevel2Name: null, canDeleteLevel2: null};
return state.siteRows.slice(0, 1);
if (s.siteLevel3Id && s.siteLevel3Id == action.payload.id)
return {...s, siteLevel3Id: null, siteLevel3Name: null, canDeleteLevel3: null};
if (s.siteLevel4Id && s.siteLevel4Id == action.payload.id)
return {...s, siteLevel4Id: null, siteLevel4Name: null, canDeleteLevel4: null};
if (s.siteLevel5Id && s.siteLevel5Id == action.payload.id)
return {...s, siteLevel5Id: null, siteLevel5Name: null, canDeleteLevel5: null};
return s;
}),
}
}
如您所见,只要删除3、2,仍然会填入1,看起来像这样“1 - - -”。现在如果我们也删除“1”,这里命名为“siteLevel2...”,它会显示“- - - -”,但我只想从“state.siteRows”中删除整行。
我现在已经尝试了注释中的行,但它只是将一个“null”值添加到“siteRows”数组中,如下所示:{null, [siteRow1]} 所以它在我的屏幕上崩溃,因为它正在尝试执行“null.id”之类的操作。
我已经尝试在第二行拼接数组中的第一个元素(删除它),但它似乎也不起作用。
谁能帮我解决这个问题?
【问题讨论】: