点击一次删除时,不能刷新,点两次才能删除
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 年 9 月 4 日 via Android 你的两个接口是同时调的,所以在执行删除操作的时候数据库还没有真正完成删除
|
4
iamppz 2020 年 9 月 4 日 via iPhone
update 放 then 里面啊
|
5
aaronlam 2020 年 9 月 5 日
感觉是不是用 aysnc await 就不会那么容易出现这种失误了呢。。
|
6
Blacate 2020 年 9 月 5 日 via iPhone
推荐 react-query 或 useswr 贼香
|
9
fsiisx 2020 年 9 月 5 日 via iPhone
虽然我只懂点前端 但我也知道异步更新操作得放在 promise 的 then 里 😂
|
10
ike 2020 年 9 月 5 日
虽然与问题无关,delete 不能用 get 请求吧。
|