TypeError: (0 , next_sanity__WEBPACK_IMPORTED_MODULE_0__.createImageUrlBuilder) не является функцией

Я пытаюсь создать проект машинописного текста nextjs, используя sanity.io, но я не могу решить эту проблему. это показывает, что createImageUrlBuilder не является функцией. [введите здесь описание изображения][1] вот мой модуль здравомыслия 2

[1]:( https://stackru.com/images/7f203399b67c609709c01a4109c8e1d105f2e99a.png)

5 ответов

больше не обернут next-sanityи вам нужно будет установить зависимость самостоятельно (https://github.com/sanity-io/next-sanity#createimageurlbuilder-is-removed)

      $ npm install @sanity/image-url
// or
$ yarn add @sanity/image-url

Заметьте также, что createImageUrlBuilderтеперь импорт по умолчанию .

      -import { createImageUrlBuilder } from 'next-sanity'
+import createImageUrlBuilder from '@sanity/image-url'

Вам нужно передать вменяемый клиент в createImageUrlBuilder вместо config.

      import createClient from '@sanity/client';
import createImageUrlBuilder from '@sanity/image-url';


const config = sanityClient({
   projectId: process.env.NEXT_PUBLIC_SANITY_PROJECT_ID, 
   
   ...
  });

export const  sanityClient = createClient(config);

export const urlFor = (source) => createImageUrlBuilder(client).image(source); // <-----------

Сначала запустите эту команду

      npm install --save @sanity/image-url

Импортировать createImageUrlBuilder

      import createImageUrlBuilder from "@sanity/image-url";

Это сработало для меня таким образом.

Сначала установите @sanity/image-url

      $ npm install @sanity/image-url 
//or 
$ yarn add @sanity/image-url

import imageUrlBuilder from "@sanity/image-url";

export const urlFor = (source) => imageUrlBuilder(config).image(source);

используйте imageUrlBuilder вместо createImageUrlBuilder . Это сработало для меня, спасибо!!

Если вы хотите импортировать "urlFor" в свои компоненты, убедитесь, что вы импортируете так...

      import { urlFor } from "../lib/sanity";
Другие вопросы по тегам