Как передать переменную, содержащую строку, в запрос GraphQL через клиент AWS AppSync?
Я использую приложение React JS для отправки данных с помощью клиента AWS AppSync и API GraphQL в таблицу NoSQL в облаке. Я автоматически сгенерировал операции GraphQL с AWS Amplify, и теперь я пытаюсь отправить следующую операцию в своем коде React: (примечание и компания - это просто строковые значения, содержащиеся в состоянии React)
createOffer(note, company) {
const input = {
place: company,
title_de: note,
category: "product",
}
return API.graphql(graphqlOperation(mutations.createOffers, {input: input
}));
Это создает исключение "[объект объекта]"
Теперь, если я передам строки прямо так
createOffer() {
const input = {
place: "Example Company ",
title_de: "Example Title",
category: "product",
}
return API.graphql(graphqlOperation(mutations.createOffers, {input: input
}));
это работает отлично. Единственный обходной путь, который я нашел, - это обернуть переменные, содержащие строковые значения, в JSON.stringify(company) и JSON.stringify(note). Но затем соответствующие записи в базе данных заключаются в двойные кавычки "Пример компании", а не "Пример компании".
Я хочу избегать ручного изменения автоматически сгенерированного кода API GraphQL, поскольку я ожидаю, что он будет часто меняться.
Есть ли возможность на стороне клиента получить фактическую строку из состояния React в вызове API без GraphQL, идентифицирующего ее как объект или заканчивающейся двойными кавычками в базе данных?
1 ответ
Вы пробовали шаблонные литералы?
const input = {
place: `${company}`,
title_de: `${note}`,
category: 'product'
}
Когда я запустил быстрый тест в консоли разработчика, он определенно удаляет лишние кавычки, которые вы испытывали.