【发布时间】:2021-09-12 09:10:55
【问题描述】:
我认为我离解决方案不远了,但我现在陷入困境。
这是我的组件,带有一个按钮,可以删除 mongoDB 集合中的一行:
Object.entries(userWalletIncomes).map(([key, value]) => {
return (
<div id="incomeTable" className="text-left mx-auto flex" key={key}>
<p className="w-32 border p-1 capitalize">{key} :</p>
<p className="w-32 border p-1 text-green-500">{value}€</p>
<button onClick={(e) => handleDeleteIncome(key)}><i className="fas fa-times text-gray-400 text-xs p-1"></i></button>
</div>
)
})
这是我发出 axios 请求的函数,then 使用钩子设置新状态:
const handleDeleteIncome = (key) => {
let data = { [key]: "" }
axios({
method: "delete",
url: `${process.env.REACT_APP_API_URL}api/balanceOneIncome/${uid}`,
data: data
})
.then(() => setUserWalletIncomes(userWalletIncomes))
}
问题是,我必须重新加载页面才能看到新状态。我想避免重新加载页面
有什么想法吗?
【问题讨论】:
-
在反应方式中,您必须重置列表,因此无法避免重新加载页面。尽量给每一行一个唯一的 id 以避免每行刷新。
标签: javascript reactjs axios react-hooks state