Отправка даты с использованием момента в graphql

Я пытаюсь отправить мутацию на свой сервер graphql, чтобы обновить дату. Моя схема мутации выглядит так:

mutation CreateReminderMutation(
    $birthday: Date
) {
    createReminder(
        birthday: $birthday
    ) {
        id
    }
}

Затем в моем реагирующем компоненте я отправляю дату с помощью moment.

const Calendar = () => {
   // component and mutation implementation
   birthday: moment(birthday).toDate()
}

Я получаю следующее сообщение об ошибке:

[GraphQL error]: Message: Variable "$birthday" got invalid value "2019-03-15T12:00:00.000Z"; Expected type Date; Value is not a valid Date: 2019-03-15T12:00:00.000Z, unparsable, Location: [object Object], Path: undefined

кто-нибудь может посоветовать, как получить правильный формат Date с моментом отправки в graphql?

почему за это проголосовали без объяснения причин? Если бы это было очевидным простым решением, я бы его нашел

peter flanagan 25.03.2019 12:40

ну, toDate кажется именно тем, что вы должны делать, это точно, поскольку toDate возвращает копию собственного объекта Date - странно, что ошибка также указывает, что строка даты не поддается анализу - я имею в виду, что это гарантированная разборчивая строка формат даты

Jaromanda X 25.03.2019 12:46

спасибо @JaromandaX, по крайней мере, я не схожу с ума. не могу найти много в документах graphql об этом

peter flanagan 25.03.2019 12:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
8
3
9 029
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Предполагая, что вы используете пакет graphql-изо-дата, скаляр Date должен быть в формате YYYY-MM-DD. Таким образом, ваша мутация будет выглядеть так:

mutation {
  createReminder(birthday: "1990-01-01") {
    id
  }
}

См. этот codeandbox: https://m5782nj1w9.sse.codesandbox.io/?query=query%20%7B%0A%20%20daysAgo%28when%3A%20%222018-01-01%22%29%0A%7D

Нет решения moment.js, но это работает для меня, используя graphql prisma

new Date().toISOString()

Я использовал new Date().toUTCString() для хасуры, развернутой на героку. Это не сработало для меня new Date().toISOString()

Другие вопросы по теме