尝试排序结果时使用 ContentFul 节点模块出现类型错误

问题描述 投票:0回答:1

我正在使用 Contentful 来管理我正在开发的新网站上的内容,并且进展顺利。但是,我在尝试对项目进行排序时遇到了问题。我正在使用 NextJS14 和 Contentful 节点模块。我在 Contentful 中有一个模型,其中包含一个项目列表,其中一个字段名称是“mark”。我可以很好地加载数据,但如果我尝试通过标记字段感到疼痛,我会得到一个

这是我用来查询数据的代码:

await client.getEntries({
            content_type: 'reportingMarks',
            'fields.mark[match]': search,
            order: 'sys.contentType.sys.id,fields.mark',
            skip: skip,
            limit: limit
        }).then((response) => {
            setMarks(response.items);
            setTotalResults(response.total);
            setIsPending(false);
        }).catch((error) => {
            console.error('Error:', error);
        });

虽然这在我的本地计算机上有效,但当我尝试构建用于部署的项目时,我收到以下消息:

类型错误:类型“string”无法分配给类型“(OrderFilterPaths |“sys.contentType.sys.id”|“-sys.contentType.sys.id”)[]'。

我花了两天时间寻找一种方法来完成这项工作,但我看到的帮助并不多。如果有人有任何想法,你可以拯救我的理智!

我已经阅读了 Contentful 文档,但这没有帮助。我找到的文档是这样说的:

为了按字段对结果进行排序,您需要将 order 指定为 where 选择器。请确保您只是查询 sys 中的字段,或者指定要查找的内容类型。

我的代码指定了 content_type。我也尝试过仅使用“fields.mark”来使用“order”。同样,这有效,但仍然会导致构建错误。

contentful
1个回答
0
投票

像往常一样,在发布问题后我有了突破。我更正后的代码是:

await client.getEntries({
        content_type: 'reportingMarks',
        'fields.mark[match]': search,
        order: ['sys.contentType.sys.id', 'fields.mark'],
        skip: skip,
        limit: limit

这有效并通过了构建。

© www.soinside.com 2019 - 2024. All rights reserved.