【发布时间】:2019-03-05 02:34:32
【问题描述】:
当我在 [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;
},
【问题讨论】:
-
你的分页器函数是用 3 个参数定义的,你称之为传递两个参数......也许这就是问题所在?这里:
const dataPaginated = this.paginator(res.data , page) -
是的,问题在于线
-
那么你能通过添加第三个参数来解决它吗?如果是这样,我应该为您添加答案还是删除此问题?
-
报错继续,其实其他两个参数都不需要传。只需将数组作为参数传递即可。
-
@JorgeCampos 我想做的是在 Home.vue 中调用它。 $ store.dispatch (ACTYPE.GET_MOVIES, this.page);但他一直在文件存储/actions.js中向我显示同样的错误
标签: javascript vue.js vuex pagination