方法 'dispose' & jumptopage 不能无条件调用,因为接收者可以是 'null'

The method 'dispose' & jumptopage can't be unconditionally invoked because the receiver can be 'null'

我尝试在 flutter 中使用 pageController 但我发现问题是无条件地为什么“处理”需要有价值我不知道这个请帮我弄清楚

这是我的代码

PageController? pageController;
  int pageIndex = 0;

  void initState() {
    super.initState();
    pageController = PageController();
  }

  @override
  void dispose() {
    pageController.dispose();
    super.dispose();
  }

  onPageChanged(int pageIndex) {
    setState(() {
      this.pageIndex = pageIndex;
    });
  }

  onTap(int pageIndex) {
    pageController.jumpToPage(pageIndex);
  }

pageController.dispose();

此时,由于 pageController 被声明为 PageController? pageController;,编译器不能排除它可能为 null。您不能在 null 上调用方法,因为编译器无法排除它,所以不会让您这样做。

你可以这样做:

final temp = pageController;
if(temp != null) {
  temp.dispose();
}

或者如果您想使用 Dart 的强大功能并在后台为您完成:

pageController?.dispose();