首页 > 解决方案 > 脚手架抽屉条件渲染抛出错误

问题描述

我只需要为某些特定设备的纵向模式显示一个 Scaffold 抽屉。我正在使用条件渲染(满足特定设备时 showDrawer 为真)

Scaffold(
    key: _scaffoldKey,
    drawer: showDrawer ? drawer : null,
    body: Text('test')
)

这不会破坏应用程序(它可以工作),但是当我旋转设备时它会给我一个控制台错误

════════ Exception caught by widgets library

The following assertion was thrown while finalizing the widget tree:
setState() or markNeedsBuild() called when widget tree was locked. 

This Scaffold widget cannot be marked as needing to build because the framework is locked.

我尝试将条件更改为:

drawer: showDrawer ? drawer : const SizedBox(),

但随后抽屉覆盖显示和隐藏 UI。删除条件会使控制台错误消失。

关于如何解决这个问题的任何想法?

谢谢

标签: flutterdartdrawerscaffold

解决方案


推荐阅读