reactjs - 单击 React.js 中的引导模式按钮后如何重新渲染组件
问题描述
所以我想从我的数据库中删除一个用户,只是为了确认用户的操作,我在模态上显示一个警告,如果用户单击模态上的删除按钮,将调用删除函数。一切都很好,除了一件事,删除后,我的组件没有重新渲染,为此我需要使用 window.location.reload() 导致整个页面重新加载,以显示更新的用户列表,但我不希望重新加载整个页面,只希望更新该特定组件。
这是在使用状态挂钩中调用模式和更新值的按钮
<i
data-toggle="modal"
data-target="#exampleModal"
style={{ cursor: "pointer" }}
onClick={() => setDelUser(val.userEmail)}
className="fas fa-trash-alt"
></i>
这是模式上的按钮,它正在关闭模式并调用删除功能
<button
type="submit"
data-dismiss="modal"
onClick={handleDelete}
type="button"
class="btn btn-primary"
>
Delete
</button>
这是删除功能
const handleDelete = async () => {
if (delUser === admin) {
toast.error("Cannot delete the default admin!");
return;
} else {
try {
const result = await Http.post(`${Config.apiUrl}/users/delete`, {
email: delUser,
});
setDelUser("");
} catch (ex) {
if (ex.response && ex.response.status === 404) {
toast.error(ex.response.data);
}
}
}
};
解决方案
首先感谢你给我你的沙箱,我试图修改你的代码,不幸的是我无法检查你的数据,因为你的 API 数据来自localhost
,但我static
先将数据修改为 json,
我修改了您的代码在这里,我建议您使用 Modal React 而不是 Modal 纯 html,然后在selected data
通过 API 删除后,我使用从所有数据lodash
中删除selected data
,然后数据已被删除而不刷新。
推荐阅读
- r - 合并 tibble 中的行
- python - 如何参考另一个数据框替换空值?
- android - 谷歌登录api无法使用firebase运行android studio
- c# - Blazor 服务器端 - 使用 StateHasChanged 循环实时更新
- javascript - JS将两个数字相加并显示到小数点后两位
- android - 如何在 login.vue 中添加标题?
- c - C使用strtok()将字符串拆分为字符串数组,没有NULL作为最后一个元素
- java - java中的进程间文件锁定引发异常
- sql - 将时间戳转换为日期时如何摆脱 00:00:00?
- scala - 如果精度全为零,则精度仅在 scala 中设置为小数点后 1 位