Невозможно перейти на следующую страницу PageView

Я использую конструктор просмотра страниц, но не могу перебирать страницы. Я все время получаю эту ошибку:

«Метод animateToPage был вызван для null. Получатель: null Попытка вызова: animateToPage (1, curve: экземпляр« Cubic », продолжительность: экземпляр« Duration »)»

Вот что я звоню:

 PageView.builder(
                        itemBuilder: (context, i) {
                          return _prodctReview2(context, i);
                        },
                        itemCount: currentReview.order.orderDetails.length,
                        controller: _pageController,
                      )

Вот функция, которую я вызываю:

 Future nextPage(i) async {
    var next = currentPageValue + 1;

    print(i);

    if (i == currentReview.order.orderDetails.length) {
      Navigator.push(
          context,
          MaterialPageRoute(
              builder: (context) => DriverReviewPage(
                    currentReview: recommendedProducts[i],
                  )));
    } else {
      _pageController.jumpToPage(
        next,
      );
    }
  }

Когда я вызываю функцию, я получаю эту ошибку

Необработанное исключение: NoSuchMethodError: метод jumpToPage был вызван с нулевым значением. Получатель: null Пробовал вызвать: jumpToPage (1)

Я не уверен, почему, потому что страницы прикреплены.


person A True Novice    schedule 11.03.2020    source источник


Ответы (1)


В соответствии с ошибкой возможно, что _pageController не инициализирован должным образом. Например, в виджете с отслеживанием состояния необходимо инициализировать переменную _pageController в методе initState.

@override
void initState(){
    _pageController = PageController(initialPage: 0);
}
person Frenco    schedule 11.03.2020