Запрос GraphQL с несколькими идентификаторами с использованием Apollo

У меня есть запрос, который принимает массив идентификаторов в качестве параметра. В массиве я могу добавлять или удалять идентификаторы на основе выбранных документов.
Проблема в том, что он не запускает запрос при каждом изменении массива id, но я не понимаю, почему.
Я также пытался изменить запрос options.fetchPolicy на network-only и no-cache, но это не сработало.

Это мой запрос:

const GET_DATA = gql`
    query docs($selectedDocs: [ID]) { 
        docs(selectedDocs: $selectedDocs) {
            _id
            name
            description
        }
    }
`;

А это функция рендеринга компонента:

render() {
        const { selectedDocs } = this.props;
        console.info(selectedDocs)
        return (
            <Query
                query = {GET_DATA}
                variables = {{ selectedDocs }}
                fetchPolicy = "network-only"
                // fetchPolicy = "no-cache"
                notifyOnNetworkStatusChange
            >
                {({ loading, error, data, refetch, networkStatus }) => {
                    if (loading) return "Loading...";
                    if (error) return "Error!";

                    console.info(data);
                    return (
                        <div>
                            docs list
                        </div>
                    )
                }}
            </Query>
        );
    }

Это метод рендеринга родительского компонента:

render() {
    const { selectedDocs } = this.state;
    return (
        <Docs
            selectedDocs = {selectedDocs}
        />
    )
}

Можете ли вы показать рендеринг вашего родительского компонента и как передаются selectedDocs

Treycos 14.02.2019 10:43

Я передаю selectedDocs в качестве реквизита. я обновил вопрос

Stefano 14.02.2019 10:48

console.info(selectedDocs) срабатывает каждый раз, когда вы меняете опору?

Rango 14.02.2019 10:49

Да и содержание у него правильное!

Stefano 14.02.2019 10:52

@Stefano, это хорошо, так что вы видите сетевой запрос на сетевой панели DevTools каждый раз, когда вы меняете опору? (fetchPolicy должен оставаться «только для сети»)

Rango 14.02.2019 10:54

Нет, проблема в том, что я не вижу запрос в сетевой панели каждый раз, когда я меняю проп

Stefano 14.02.2019 11:06

Вы видите список документов после первого запроса? а может этот запрос висит с какой-то ошибкой?

Rango 14.02.2019 11:16

Да, в первый раз он точно выполняет запрос. А также в других случаях, когда изменяется реквизит, он запускает запрос, но не каждый раз.

Stefano 14.02.2019 11:18

Извините, мои идеи закончились. Не уверен, в чем может быть проблема... Если только клиент как-то неправильно настроен. Никогда не было такой проблемы, как у вас.

Rango 14.02.2019 11:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
9
937
0

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