Проблемы с подкачкой в ​​хранилище / действиях vuex [this.paginator не является функцией] - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь решить проблему, когда я вызываю функцию paginator в [ACTYPE.GET_MOVIES].

Это показывает мне ошибку, которая говорит следующее:

TypeError:_this.paginator не является функцией на eval (actions.js? 63e0: 13)

Store / Actions.js

import {ACTYPE} from './types/actions_types';
import {MUTYPE} from './types/mutations_types';
import {BASE_URL , TOP_MOVIES , QUERY_URL} from '../API_URLs/index';
import axios from 'axios';

const A = axios.create({ baseURL: String(BASE_URL) });

export const actions = {
  [ACTYPE.GET_MOVIES]({commit} , page){
  A.get(TOP_MOVIES).then((res) =>{
    console.log(res);
    const dataPaginated = this.paginator(res.data , page)
    commit(MUTYPE.SET_MOVIES_DATA , dataPaginated);
    commit(MUTYPE.IS_LOADING , false);
  }).catch((err) =>{
      console.log(err);
  });  
}, 

paginator(items, page, per_page){
  var page = page || 1,
  per_page = per_page || 10,
  offset = (page - 1) * per_page,

  paginatedItems = items.slice(offset).slice(0, per_page),

  total_pages = Math.ceil(items.length / per_page),

  paginContent = {
    page: page,
    per_page: per_page,
    pre_page: page - 1 ? page - 1 : null,
    next_page: (total_pages > page) ? page + 1 : null,
    total: items.length,
    total_pages: total_pages,
    data: paginatedItems
  };
  console.log("Paginate Item: " , paginatedItems);
  console.log("Pagin Content: " , paginContent);
  return paginContent.data;
 }, 

1 Ответ

0 голосов
/ 04 марта 2019

вы должны изменить paginator(items, page, per_page){ ...

на function paginator(items, page, per_page){

Таким образом, декларация будет поднята.Если не paginator не объявлено.

, тогда вы можете удалить this in this.paginator(res.data , page)

После этого он должен работать

...