В распознавателе я использую метод lodash «найти», если я кодирую как:
user: (_, { _id }) => find(users, _id ),
В результате я получаю null, а не должен, бывает, что я должен снова деструктурировать:
user: (_, { _id }) => find(users, { _id }),
Почему это? Я думал, что деструктуризация происходит один раз и потом в функцию передается именованный аргумент, как это понимать?


Последнее — это не деструктурирование, а просто сокращенный синтаксис для инициализация объекта.
Этот
find(users, { _id })
эквивалентно
find(users, { _id: _id })
это просто более кратко. В обоих случаях вы создаете объект со свойством с именем _id и устанавливаете значение этого свойства в существующую переменную, которая также имеет имя _id. Если имена свойств и переменных совпадают, можно использовать сокращенный синтаксис.