gpt4 book ai didi

vue.js - 使用 vuex 的 Apollo 分页

转载 作者:行者123 更新时间:2023-12-04 17:10:44 24 4
gpt4 key购买 nike

我正在尝试让 vuetify 的分页组件与 nuxtjs@apollo module 一起工作.

但我很难让它与我的 vuex 商店一起工作。

我将跳过大部分代码,因为它有很多样板文件。

首先,为了填充我的初始状态,我将一个 graphql 查询发送到我的后端并将这些查询提交到我的状态。

const client = context.app.apolloProvider.defaultClient

const response = await client.query({
query: productsGQL,
variables: {
first: 5,
page: 1
}
})

commit('setProducts', response.data.products.data)
commit('setPagination', response.data.products.paginatorInfo)
commit('setPage', response.data.products.paginatorInfo.currentPage)

这很好用,产品、分页和页面都设置了初始数据。

现在,我有 2 个组件,一个 CardComponent,其中包含所有类似的产品

<script>
export default {
name: 'CardComponent',

computed: {
products() {
return this.$store.getters.getProducts
}
}
}
</script>

还有一个PaginationComponent:

<template>
<div>
<v-pagination
v-model='page'
circle
:length='total_pages'
/>
</div>
</template>

<script>
export default {
name: 'PaginationComponent',

data() {
return {
total_pages: Math.ceil(this.$store.getters.getPagination.total / this.$store.getters.getPagination.perPage)
}
},

computed: {
page: {
get() {
return this.$store.getters.getPage
},
set(value) {
return this.$store.commit('setPage', value)
}
}
}
}
</script>

Page 初始值为 1,当我点击第二页时 Page 变量更新为 2,这也反射(reflect)在我的状态中。

我不确定的是:如何重新查询数据库?页面正在更新,但显示的产品仍然相同,我不确定该怎么做。

如果您从商店获得更多代码,我会在此处显示。

最佳答案

关于vue.js - 使用 vuex 的 Apollo 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69493240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com