
点击一次删除时,不能刷新,点两次才能删除
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 你的两个接口是同时调的,所以在执行删除操作的时候数据库还没有真正完成删除 |
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 就不会那么容易出现这种失误了呢。。 |
推荐 react-query 或 useswr 贼香 |
9 fsiisx 2020-09-05 13:23:29 +08:00 via iPhone 虽然我只懂点前端 但我也知道异步更新操作得放在 promise 的 then 里 |
10 ike 2020-09-05 13:52:40 +08:00 虽然与问题无关,delete 不能用 get 请求吧。 |