单击 React.js 中的 bootstrap 模态按钮后如何重新呈现组件
How to re-render a component after clicking a bootstrap modal button in 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,
我修改了你的代码 Here,我建议你使用 Modal React 而不是 Modal pure html,然后在 selected data
被 API 删除后,我使用lodash
从所有数据中删除 selected data
,然后数据已删除而没有刷新。
所以我想从我的数据库中删除一个用户,只是为了确认用户的操作,我在模态上显示警告,如果用户单击模态上的删除按钮,将调用删除函数。一切正常,除了一件事,删除后,我的组件没有重新呈现,为此我需要使用 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,
我修改了你的代码 Here,我建议你使用 Modal React 而不是 Modal pure html,然后在 selected data
被 API 删除后,我使用lodash
从所有数据中删除 selected data
,然后数据已删除而没有刷新。