点击一次删除时,不能刷新,点两次才能删除
export const WorkPage = () => {
const [items, setItems] = useState([])
const [update, setUpdate] = useState(false)
const updateEvent = () => {
console.log(update)
setUpdate(!update)
}
useEffect(() => {
axios.get(findAllUrl).then(response => {
setItems(response.data)
})
}, [update])
const deleteItemHandler = (event) => {
axios.get(deleteByIdUrl, {
params: {
id: event.target.value
}
}).then(response => {
console.log(response)
})
updateEvent()
}
return (
<div>
<ul>
{items.map(((item, index, array) =>
<li key={index}>{index + " " + item.content}
<button value={item.id}
onClick={e => deleteItemHandler(e)}>X
</button>
</li>
))}
</ul>
</div>
)
}
1
lemon6 2020-09-04 23:28:37 +08:00 via Android 1
你的两个接口是同时调的,所以在执行删除操作的时候数据库还没有真正完成删除
|
4
iamppz 2020-09-04 23:42:09 +08:00 via iPhone
update 放 then 里面啊
|
5
aaronlam 2020-09-05 00:38:18 +08:00
感觉是不是用 aysnc await 就不会那么容易出现这种失误了呢。。
|
6
Blacate 2020-09-05 02:14:31 +08:00 via iPhone
推荐 react-query 或 useswr 贼香
|
9
shmilwdc 2020-09-05 13:23:29 +08:00 via iPhone
虽然我只懂点前端 但我也知道异步更新操作得放在 promise 的 then 里 😂
|
10
ike 2020-09-05 13:52:40 +08:00
虽然与问题无关,delete 不能用 get 请求吧。
|