参数类型 'RenderObject?' 无法分配给参数类型 'RenderObject' 因为 'RenderObject?' 可以为空而 'RenderObject' 不是

The argument type 'RenderObject?' can't be assigned to the parameter type 'RenderObject' because 'RenderObject?' is nullable and 'RenderObject' isn't

我正在使用 Flutter web 创建一个 web,我想实现一个自动将视图向下滚动到某个小部件的按钮。为此,我使用了一个滚动控制器和一个全局键

ScrollController _scrollController = ScrollController();
final _key = GlobalKey();

我分配给所需的容器

Widget contact() {    
    return Container(
      key: _key,
      ...
    );
}

这是我的主要脚手架。我正在使用 CustomScrollView:

   return Scaffold(
      body: CustomScrollView(
        controller: _scrollController,
        slivers: [
          NavBar(navBarBackground()),
          SliverList(
            delegate: SliverChildListDelegate(
              [
                imageAndText(),
                highlights(),
                androidIosDesktop(),
                multiplatform(),
                phrase(),
                contact(),
                const Footer(),
              ],
            ),
          )
        ],
      ),
    );

我正在尝试为按钮实现此功能

    void jump() {
      _scrollController.position.ensureVisible(
        _key.currentContext.findRenderObject(),
        alignment: 0.5,
        duration: const Duration(seconds: 1),
      );
    }

但由于空安全性,我在 _key.currentContext.findRenderObject() 上收到错误。

它说我应该对目标添加一个空检查,但我不知道我应该在哪里做。我尝试使用钥匙,但它在那里不起作用。 (我已经尝试写了?。但仍然会出错)

知道如何解决这个错误,或者如何以另一种方式向下滚动到特定的小部件吗? (我已经尝试过跳转到偏移,但我更喜欢这种方法,因为我不必担心更改任何尺寸)。

提前致谢。

如果您确定它不能为空,请将其更改为_key.currentContext!.findRenderObject()!