머리말
在前端开发过程中,Table分页、列表分页等等需求特别常见,笔者在最近开发过程中遇到当非第一页进行搜索、删除最后一条数据报错问题,因而再次做个记录,以供大家参考
비즈니스 현장
1. 첫 번째 페이지에 전역 검색이 없을 때 백엔드에서 오류 메시지를 표시합니다.
두 번째 페이지에서 전역 검색을 수행하세요.
브라우저 컨트롤러를 열어 확인하고 페이지 번호, 페이지 번호 및 검색 내용이 모두 백엔드로 전달되는지 확인합니다.
이유 백엔드에서 반환된 데이터가 현재 페이지 수 및 페이지 수를 지원하기에 충분하지 않습니다.
해결책
프런트 엔드가 검색 이벤트를 트리거하면 기본적으로 페이지 번호가 1로 재설정됩니다.
const getSearchVal = debounce(async (value) => {
reqParam.value.search = value
reqParam.value.page = 1 //在非第一页搜索时 返回内容默认第一页
const {
results, count } = await getList(reqParam.value)
tableData.value = results
pagination.value.total = count
pagination.value.current = reqParam.value.page
}, 200)
2. 첫 번째 페이지가 아닌 페이지에서 마지막 데이터를 삭제하면 백엔드에서 오류 메시지가 나타납니다.
해결책
첫 페이지가 아닌 마지막 데이터를 삭제하는 경우 페이지 번호를 한 페이지 줄이거나 첫 번째 페이지로 삭제해야 합니다.
pagination.value.page = pagination.value.page - 1 || 1