Атрибут current-page/currentPage из el-pagination в Element-Plus не работает (?)
ситуация : Согласно документу element-plus.org: https://element-plus.org/#/en-US/component/pagination, вы должны иметь возможность установить текущую страницу для компонента разбивки на страницы. Моя страница / компонент работает, за исключением случаев, когда я вхожу на страницу с новой загрузкой страницы, я бы хотел, чтобы компонент взял на себя параметр «page», который переводится в реактивную переменную «currentPage», и использовал это, чтобы установить текущую страницу в качестве выделения. в компоненте.
Проблема : однако компонент продолжает показывать страницу 1, даже если для атрибута установлено, скажем, 3. CurrentPage является полностью реактивным и отображается при синтаксическом анализе в усах над ним.
несогласованность в документах ?: Я пробовал разные вещи, но их собственная документация не согласована или я тупой: в примере с «другими элементами» он показывает: v-model:currentPage= «currentPage1», но в разделе «Атрибуты» говорится : текущая страница. :default-current-page не работает лучше или defaultCurrentPage.
Мой код [шаблон]:
{{ currentPage }} <!-- this actually shows the page I am currently on from param -->
<el-pagination
@current-change="paginate"
:currentPage="currentPage"
:current-page="currentPage"
:default-current-page="currentPage"
:total="data.length"
:page-size="limit"
:pager-count="6"
layout="prev, pager, next"
>
</el-pagination> <!-- evil component only highlights (default) 1 -->
соответствующая часть в setup () :
const currentPage = ref();
watch(props, () => {
currentPage.value = router.currentRoute.value.params.page || 1;
initOutputVal();
});
// pagination
const paginate = (e) => {
router.push({ params: { page: e } });
};
const initOutputVal = () => {
let startSlice = (currentPage.value - 1) * props.limit;
output.value = props.limit ? props.data.slice(startSlice, startSlice + props.limit) : props.data;
};
Кто-нибудь знает, делаю ли я что-то не так? Element-plus не тестирует их вещи, или я здесь невежественен? Какое решение было бы лучшим?
1 ответ
Проблема решена. Коллега указал, что значение на самом деле не является целым числом. Использовать
parseInt()
если вы получаете значение из URL-адреса, как я. В моем случае:
currentPage.value = parseInt(router.currentRoute.value.params.page) || 1;