Я полагаю, вы захотите добавить директивы @connection
к вашим gql
определениям notesQuery
и measurementsQuery
.Вы не публиковали их, поэтому, к сожалению, я не могу показать вам, как именно это будет выглядеть для вашего варианта использования.
В любом случае, директива @connection
позволит Apollo совпадать, например, с notebookId
, игнорируя значение first
.
К сожалению, вы объединили все свои входные данные в объект input
, и я не знаю, как бы вы выбрали просто notebookId
с фильтром.Предполагая, что ваше определение gql
выглядит примерно так для notesQuery
:
const notesQuery = gql`
query notes($input: InputType!) {
notes(input: $input) @connection(key: "notes", filter: ["input['notebookId']"]) {
id
...
}
}
`;
^^^ К сожалению, это не сработает из-за того, как работает функция apollo-utilities/lib/storeUtils.js
-> getStoreKeyName()
.,Он просто проигнорирует приведенную выше попытку получить лучшее разрешение, чем имя arg, т.е. не может выйти за пределы input
.Любая строка в массиве фильтра, которая не соответствует имени аргумента, игнорируется.
Похоже, вам придется изменить свою схему.
Дополнительная информация по адресу: https://www.apollographql.com/docs/react/features/pagination.html#connection-directive