Редактировать: я полагаю, что ответ таков: один не возвращает весь объект resolvedData
, а вместо этого поле для того объекта, в котором вы находитесь. Таким образом, в в приведенном ниже случае можно вернуть resolvedData.text
(или resolvedData.title
). Я считаю, что документы могут быть улучшены, так как может показаться, что возвращается весь объект resolvedData
.
Я пытаюсь изменить данные при сохранении определенного поля в Keystone JS 5 resolveInput
ловушка поля кажется хорошим способом сделать это. Это пример, приведенный в документах выше:
const resolveInput = ({
operation,
existingItem,
originalInput,
resolvedData,
context,
actions,
}) => {
// Input resolution logic
// Object returned is used in place of resolvedData
return resolvedData;
};
Возвращением resolInput может быть Promise или Object. Он должен разрешаться в той же структуре, что и resolvedData. Результат передается следующей функции в порядке выполнения.
Таким образом, определение поля в моем списке:
text: {
type: Wysiwyg,
hooks: {
async resolveInput({ originalInput,resolvedData }) {
console.log('resolvedData');
console.log(resolvedData);
return resolvedData;
}
}
, и для начала я просто возвращает переданный аргумент resolvedData
, который, согласно документам, равен
resolvedData Object The data received by the GraphQL mutation plus defaults values
Однако каждый раз я получаю следующую ошибку
GraphQLError
Cast to string failed for value "{ text: '<p><img src="static/blop.jpg" alt="" width="580" height="388" /><img src="static/blop.jpg" alt="" /></p>' }" at path "text"
Я не уверен, что Проблема в том, или как ее решить - я просто возвращаю те же данные, которые были переданы. Когда я удаляю хук, все работает нормально. Любая помощь приветствуется!