React集成Sanity报错:sanityClient不是函数问题求助
解决Sanity客户端初始化报错:sanityClient is not a function
一、核心问题:Sanity版本API变更
你参考的2020年教程基于@sanity/client v2版本,而当前安装的是v3+版本,API已更新——原sanityClient函数被替换为createClient,导入方式也随之改变,这是报错的直接原因。
二、修正client.js代码
替换原client.js内容为:
import { createClient } from "@sanity/client"; export default createClient({ projectId: "55oqiw61", dataset: "production", apiVersion: "2024-01-01", // 必须指定API版本,建议用当前日期格式 useCdn: false // 开发环境关闭CDN保证数据实时性,生产环境可开启 });
三、修复about.js的JSX语法错误
你在img标签的属性插值写法有误,正确写法如下:
错误代码:
<img src="{website_images.about.asset.url" alt="website_images.alt" className="about-photo"></img>
修正后:
<img src={website_images.about.asset.url} alt={website_images.alt} className="about-photo" />
四、额外注意事项
- 必须执行
sanity deploy将本地的website_imagesschema部署到Sanity云端,否则无法查询到数据。 - 可通过
npm list @sanity/client命令确认当前安装的客户端版本,确保是v3+。
内容的提问来源于stack exchange,提问作者paparonnie
相关产品推荐
相关产品推荐

