GraphQL: почему для этого примера необходимо деструктурировать как аргумент, так и функцию?

В распознавателе я использую метод lodash «найти», если я кодирую как:

user: (_, { _id }) => find(users, _id ),

В результате я получаю null, а не должен, бывает, что я должен снова деструктурировать:

user: (_, { _id }) => find(users, { _id }),

Почему это? Я думал, что деструктуризация происходит один раз и потом в функцию передается именованный аргумент, как это понимать?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Последнее — это не деструктурирование, а просто сокращенный синтаксис для инициализация объекта.

Этот

find(users, { _id })

эквивалентно

find(users, { _id: _id })

это просто более кратко. В обоих случаях вы создаете объект со свойством с именем _id и устанавливаете значение этого свойства в существующую переменную, которая также имеет имя _id. Если имена свойств и переменных совпадают, можно использовать сокращенный синтаксис.

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