Не удается отправить данные формы в DatoCMS с помощью Gatsby.js

#javascript #reactjs #api #gatsby

Вопрос:

Я отправляю данные формы, используя это:

 const { SiteClient } = require("datocms-client")
const client = new SiteClient("APIKEYREMOVED")
export default async function createRecord(fields) {
  console.log('@submit function ',fields)
  const record = await client.items.create(fields)
  console.log(record)
} 

Это информация об ошибке, но я не могу понять, в чем дело.

Ошибка отправки формы Гэтсби

Функция отправки дескриптора формы успешно вызывает createRecord() со страницы формы. Таким образом, проблема, по-видимому, связана с предоставленным фрагментом.

Я получил указанный фрагмент отсюда: DatoCMS создает запись простой пример

Ответ №1:

Я думаю, что вам не хватает связи между вашей формой и моделью содержимого в DatoCMS. Согласно документам:

Предположим, что наш проект содержит модель «Собака» (идентификатор: 1234, ключ API: собака) со следующими полями:

Ключ API поля Тип поля
Имя Однострочная строка
разводить Однострочная строка
Описание Текст из нескольких абзацев
возраст Целое число
 const { SiteClient } = require("datocms-client");
const client = new SiteClient("YOUR-API-TOKEN");
async function createRecord() {
  const record = await client.items.create({
    itemType: "1234", // model ID
    name: "Gigio",
    breed: "Labrador",
    description: "Very friendly and calm.nI love it.",
    age: 4,
  });
  console.log(record);
}
createRecord();
 

В вашем случае кажется, что вы не соответствуете itemType идентификатору модели , как следует из вывода promise в вашем console.log .

Комментарии:

1. Да, это и есть ответ. Я совершенно упустил из виду необходимость сообщить клиенту, что такое идентификатор модели. Чтобы уточнить, это был цифровой идентификатор, указанный в DatoCMS в правом верхнем углу окна информации о модели светло-серого цвета, а не название модели системы.