Атрибут 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;
Другие вопросы по тегам