使用Next.js 13前端设置Sanity Studio时出现SyntaxError

bvk5enib  于 2023-04-11  发布在  其他
关注(0)|答案(1)|浏览(182)

我正在尝试使用我的Next.js 13前端设置Sanity Studio。我将http://localhost:3000添加到我的Sanity项目CORS origin中,然后创建了这个sanity.config.ts文件:

import { defineConfig } from "sanity";
import { deskTool } from "sanity/desk";

const config = defineConfig({
    projectId: 'p7dk6747',
    dataset: 'production',
    title: 'Por La Línea Studio',
    apiVersion: "2023-03-04",
    basePath: "/admin",
    plugins: [deskTool()]
})

export default config;

app/admin/[[...index]]/page.tsx文件:

"use client";

import config from "@/sanity.config";
import { NextStudio } from "next-sanity/studio";

export default function AdminPage() {
    return <NextStudio config={config} />;
}

应该是这样,但是当我尝试访问http://localhost:3000/admin时,它没有加载,我的控制台打印出以下错误:

error - SyntaxError: "undefined" is not valid JSON
    at JSON.parse (<anonymous>)

我该怎么解决这个问题?
我希望看到我的项目的理智工作室 Jmeter 板认为以下链接:http://localhost:3000/admin

piwo6bdm

piwo6bdm1#

解决方案是将AdminPageapp/admin/[[...index]]/page.tsx转换为箭头函数,然后将其导出到单独的代码行中,如下所示:

"use client";

import config from "@/sanity.config";
import { NextStudio } from "next-sanity/studio";

const AdminPage = () => {
    return <NextStudio config={config} />;
}

export default AdminPage;

这似乎是一个Next.js 13 bug,@Yaser和@Nimish在this YouTube video中指出了这一点。

相关问题