问题标签 [contentful-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
48 浏览

javascript - React 和 Contentful 显示 .map 数组

我已经模仿了一个文件,用于从以前的开发人员构建的 Contentful 仪表板创建一组项目,我已将内容插入页面并将它们添加到 graphQL 部分以确保它正在提取某种数据但是当我尝试映射数组时,它会抛出一个错误,如下图所示:

函数 createFiberFromTypeAndProps中的错误

元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到object. 检查 ValueList.

我在网上看到的几件事提到通过export default方法导入组件而不是用大括号导出函数,无论哪种方式这对我来说都会产生相同的结果。我创建的代码如下:

我是否错过了一些东西,因为我已经测试了组件本身的传递道具,但是每当我尝试映射数组时,它都会引发渲染错误?下面是添加到容器页面的代码。

0 投票
0 回答
14 浏览

graphql - 使用内容中的 where 参数

我需要查询相关的内容类型。我知道我可以使用“linkFrom”。但是,我无法对从另一个条目“链接”的条目使用 where 参数。所以,我可以做到以下几点。

但是,如果我需要扩展我的查询并使用linkedFrom。我在哪里得到一个“字段上的未知参数”。

我认为问题在于我需要定义“linkedFrom”期望的类型,以便它可以解决 where 参数。我不确定这会在哪里。

0 投票
0 回答
13 浏览

typescript - 如何在具有内容的graphQl中实现groupBy

我们希望基于键分组来获取有内容的集合项。我正在使用 apollo graphQl 查询内容 api 以检索数据,我们有简单的数据集合,我想根据内容模型中可用的键对集合进行分组。

其中 LevelCollection 是具有以下属性的集合

我希望根据该集合中的键属性对查询的输出进行分组

预期输出:

期望根据key对数据进行分组,并根据key得到分组项的集合。

有什么办法可以在graphQl中对来自内容的集合进行动态分组

0 投票
0 回答
18 浏览

graphql - 使用 GraphQL 在 Contentful 上按类别过滤帖子

我正在努力寻找一种按类别过滤标签的方法。

我有一个由 slug 和标题组成的类别内容模型,它们都是短文本字段。这个内容模型作为引用对象添加到我的博客文章中,引用了许多类别(如果有意义的话)。

在单个博客文章页面上,我想加载更多具有相似类别的文章,但从结果中排除当前文章。

我读到的问题是,“目前不支持通过链接的集合条目进行过滤”。

所以我不能像这样创建一个graphQL查询:

我可以让文章做这样的查询:

但似乎没有办法过滤掉当前的帖子,因为我可以在该查询中添加到 articleCollection 的唯一过滤器似乎是跳过、限制、语言环境和预览。

有什么方法可以通过将类别用作内容模型来获取相关帖子,就像我目前正在做的那样,或者可能有不同的解决方案?

提前致谢

0 投票
1 回答
16 浏览

javascript - 从内容丰富的 GraphQL 查询中检索由 slug 构建错误创建的页面的数组

我正在使用 React 和 Contentful 来构建一个应用程序,它使用 GraphQL 进行数据查询,并且我试图在由 slug 创建的“发布”样式页面上检索一个数组。我能够提取静态数据,但我需要能够显示来自几个不同数组的内容,但我发现遇到了路由或解析问题。

我在下面创建了 GraphQL 查询:

} `

然后我创建变量,以便能够访问静态数据,例如标题和描述:

这使我可以像这样获取标题,{career.title}但是当我尝试通过数组进行映射时,它会引发错误。

我通过数组映射如下:

我似乎无法查明语法错误,或者是否存在我没​​有看到的整体错误。我很可能错过了一些东西!

还有一条额外的错误消息说: