React-Native中Sanity客户端问题求助:弃用警告与数据为空
解决React-Native集成Sanity的三类问题
1. 消除sanityClient删除线&废弃警告
出现删除线和警告的核心原因是@sanity/client的默认导出sanityClient已被官方废弃,现在要求使用命名导出的createClient。直接修改你的sanity.js代码即可解决:
// 废弃写法(会出删除线+警告) import sanityClient from '@sanity/client' const client = sanityClient({ projectId: '你的项目ID', dataset: '你的数据集', useCdn: true, apiVersion: '2023-05-03' // 替换为当前日期或最新稳定版本 }) // 正确写法 import { createClient } from '@sanity/client' const client = createClient({ projectId: '你的项目ID', dataset: '你的数据集', useCdn: true, apiVersion: '2023-05-03' // 必须指定该字段,否则会触发报错 })
保存后删除线和警告会自动消失。
2. 解决调用数据返回空数组[]的问题
按以下步骤逐一排查:
- 核对基础配置:确保
projectId、dataset和Sanity Studio后台的配置完全一致,注意大小写和拼写。 - 确认API版本格式:
apiVersion必须是YYYY-MM-DD的日期格式,使用过时版本可能导致数据获取失败。 - 检查数据集权限:如果你的数据集是私有的,需要在配置中添加有权限的API Token:
const client = createClient({ // 其他配置项 token: '你的Sanity API Token' // 从Sanity管理面板生成,需开启读取权限 }) - 验证查询语句:先在Sanity Studio的Vision插件里测试你的查询语句(比如
*[]),确认后台确实有可返回的文档。 - 临时关闭CDN缓存:将
useCdn改为false,排除CDN缓存导致的旧数据/空数据问题。 - 检查网络连通性:确保React-Native模拟器或真机能正常访问
https://<你的projectId>.api.sanity.io地址。
内容的提问来源于stack exchange,提问作者Huseyin Kara
相关产品推荐
相关产品推荐

