【发布时间】:2020-09-08 12:31:57
【问题描述】:
当我单击删除按钮时,我想过滤掉该 ID 并重新呈现列表,但我遇到了标题中提到的烦人的错误。
它最终会向服务器发送一个从数据库中删除的请求,但现在我想要的只是要从列表中删除的项目以及在没有该特定记录的情况下再次显示该列表。它基本上是一个包含一堆记录的表。每个旁边都有一个删除按钮。当您单击删除时,它应该删除我正在尝试对 .filter 执行的操作,然后将状态设置为新的 loadedFaq 减去被过滤掉的记录。
按钮:
<Button
color="purple"
label="Delete"
onClick={() => deleteHandler(faq)}
/>
删除处理程序:
const deleteHandler = async (faq) => {
const originalFaq = loadedFaq; // loadedFaq is the original state
const loadedFaq = originalFaq.filter((f) => f._id !== faq._id);
setLoadedFaq(loadedFaq); // set the state to the original state minus the filtered out record
};
更新:
它不喜欢我重新声明“loadedFaq”的事实。如果我这样做,它会起作用:
const deleteHandler = async (faq) => {
const originalFaq = loadedFaq;
const loadedFaqTwo = originalFaq.filter((f) => f._id !== faq._id);
setLoadedFaq(loadedFaqTwo);
};
【问题讨论】:
-
您希望在这里发生什么?删除处理程序真的没有意义...您的状态变量是否也称为
loadedFaq? -
能否请您更新问题,以便我们知道您想要做什么?
-
它最终会向服务器发送一个请求以从数据库中删除,但现在我想要的只是要从列表中删除的项目以及在没有该特定记录的情况下再次显示列表。它基本上是一个包含一堆记录的表。每个旁边都有一个删除按钮。当您单击删除时,它应该删除我正在尝试使用
.filter执行的项目,然后将状态设置为新的loadedFaq减去该记录 -
@AhsanUllah,我已经这样做了。如果需要进一步澄清,请告诉我。
-
@user8463989 数据看起来如何,能否提供该数据或该数据的结构?
标签: reactjs