Reactjs / Graphql: остановить выполнение запроса graphql при загрузке страницы

После некоторой отладки я обнаружил, что при загрузке страницы React выполняет следующий запрос:

export default graphql(Query, { 
    options: (props) => ({ 
        variables: { 
            start: props.start,
            end: props.end
        } 
    })         
)(Comp);

Ошибка сервера - «Плохой запрос», что, похоже, связано с тем, что начало и конец пусты и им присвоено значение с плавающей запятой! Конечно, эти переменные будут пустыми; пользователь не ввел значения.

Когда я ввожу значения в пользовательский интерфейс и нажимаю «Отправить», все работает нормально. Мне просто нужна помощь в выяснении, как предотвратить выполнение этого запроса при загрузке страницы. И выполняется только при нажатии кнопки отправки.

Можете ли вы опубликовать больше кода, в частности конструктора, componentWillMount и componentDidMount

J Dorrian 30.10.2018 23:20

Вы пробовали установить для свойства skip значение true? apollographql.com/docs/react/essentials/queries.html#props

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

Ответы 1

Просто предоставьте функцию skip для qraphql hoc:

export default graphql(Query, {
  skip: ({ start, end }) => (!start || !end),
  options: ({ start, end }) => ({
    variables: { start, end }
  })
})(Comp);

Больше никаких ошибок при загрузке страницы, однако, теперь, когда нажимается кнопка отправки, происходит сбой приложения.

N6DYN 31.10.2018 00:13

Это кажется совершенно отдельной проблемой. Я предлагаю вам создать новый вопрос и предоставить полный код компонента.

streletss 31.10.2018 00:21

Когда нажата кнопка отправки, консоль показывает пустой массив, как и после загрузки страницы. Итак, похоже, что пропуск реализуется, даже когда нажата кнопка отправки, а запрос не выполняется. С этим сообщением об ошибке: Cannot read property 'loading' of undefined.

N6DYN 31.10.2018 00:27

И опять же, это отдельная тема. Ничего не могу сказать, не увидев кода

streletss 31.10.2018 00:31

Похоже, есть проблемы с пропуском, github.com/apollographql/react-apollo/issues/289. Спасибо за помощь.

N6DYN 31.10.2018 00:34

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