'RenderObject?' 类型的值 不能分配给类型为“RenderRepaintBoundary”的变量

Mah*_*ahi 0 dart flutter

这可能是一个简单的问题,但我找不到答案。当我使用此代码时:

RenderRepaintBoundary boundary =
                key.currentContext.findRenderObject();
Run Code Online (Sandbox Code Playgroud)

我有错误:

'RenderObject?' 类型的值 不能分配给“RenderRepaintBoundary”类型的变量。?

很好,当我使用 dart version: 时2.7.0,当我将其更改为时会出现问题2.12.0

小智 10

要解决错误,只需执行以下操作:

RenderRepaintBoundary boundary =
            key.currentContext.findRenderObject() as RenderRepaintBoundary;
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您会将其转换为 RenderRepaintBoundary。


Ben*_*sal 6

为了避免The method 'findRenderObject' can't be unconditionally invoked because the receiver can be 'null'.错误,请添加感叹号以避免 null,如下所示:

RenderRepaintBoundary boundary = key.currentContext!.findRenderObject() as RenderRepaintBoundary;
Run Code Online (Sandbox Code Playgroud)