我正在尝试使用 Sanity CMS 创建一个博客;当我尝试从 Sanity 数据库获取数据时,我明白了
“错误:必须提供
dataset
才能执行查询”
我得到了带有项目ID和数据库名称的client.js组件
给我错误的组件如下所示:
import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom";
import sanityClient from "../client.js";
export default function AllPosts() {
const [allPostsData, setAllPosts] = useState(null);
useEffect(() => {
sanityClient
.fetch(
`*[_type == "post"]{
title,
slug,
mainImage{
asset->{
_id,
url
}
}
}`
)
.then((data) => setAllPosts(data))
.catch(console.error);
}, []);
return (
<div>
<h2>Blog Posts</h2>
<h3>Welcome to my blog posts page!</h3>
<div>
{allPostsData &&
allPostsData.map((post, index) => (
<Link to={"/" + post.slug.current} key={post.slug.current}>
<span key={index}>
<img src={post.mainImage.asset.url} alt="" />
<span>
<h2>{post.title}</h2>
</span>
</span>
</Link>
))}
</div>
</div>
);
}
使用相同的教程,遇到相同的错误。在“client.js”下,确保数据库设置为“生产”。
对我来说,问题是我拼写了数据集:“dataSet”。 这里没有骆驼案例,伙计们,使用:“数据集:'生产',
就我而言,错误出在 Client.js 内的 API 版本属性中 我将其更改为 2022-02-01,它对我来说效果很好。不知道到底是什么原因,但仍然解决了问题。
检查您的 client.js 文件。在意识到我拼写了 dateset 而不是 dataset
之前,我遇到了同样的错误