You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:02:39