Я вижу две проблемы в этом коде. Во-первых:
pageUp=() => {
let skip=this.state.count
}
Оператор let
приводит к тому, что переменная skip
является локальной для этой функции. Из вашего вопроса не очевидно, что заставляет его передаваться в запрос GraphQL, но если это переменная-член или что-то еще, это утверждение shadows , и вы устанавливаете чисто локальную переменную, состояние которой будет быть потерянным.
Второе:
this.setState({count: this.state.count +2});
let skip=this.state.count
Обновления состояний могут быть асинхронными , и документация React особо рекомендует не изменять состояние так, как оно у вас (есть более подходящий шаблон на основе обратного вызова). Другим следствием этого является то, что состояние может фактически не обновляться при переходе на следующую строку, поэтому вы присваиваете count
из «старого» состояния переменной skip
.
Глядя на документацию Gatsby, есть конкретное замечание, что StaticQuery не поддерживает переменные GraphQL , хотя при его просмотре не предлагается другой путь, который делает. (Каждый пример, который показывает потенциально разбитые на страницы данные, показывает только первую страницу.)