首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何转换Widget?到Widget

如何转换Widget?到Widget
EN

Stack Overflow用户
提问于 2021-06-19 15:39:22
回答 2查看 711关注 0票数 1
  • 下面的代码会出错,返回值是Widget吗?而不是Widget。我想要能强迫Widget?但怎么做呢?
代码语言:javascript
运行
复制
/// Get the parent widget in the subtree
class ContextRoute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Context test"),
      ),
      body: Container(
        child: Builder(builder: (context) {
          // Find the nearest parent up in the Widget tree `Scaffold` widget
          Scaffold? scaffold = context.findAncestorWidgetOfExactType<Scaffold>();
          // Return the title of AppBar directly, here is actually Text ("Context test")
          Widget? widget1 = (scaffold!.appBar as AppBar).title;
          return widget1;
        }),
      ),
    );
  }
}
EN

回答 2

Stack Overflow用户

发布于 2021-06-19 15:55:27

虽然最短的方法是使用Bang !运算符

代码语言:javascript
运行
复制
Widget widget = nullableWidget!;

但我建议你用?.来预防这一错误

代码语言:javascript
运行
复制
Widget widget = nullableWidget ?? Container(); // Or some other widget. 

回答你的问题:

代码语言:javascript
运行
复制
return widget ?? Container(); // Safe
return widget!; // Could cause runtime error.
票数 2
EN

Stack Overflow用户

发布于 2021-06-19 15:46:13

使用空断言运算符/邦运算符( ! )

代码语言:javascript
运行
复制
return widget1!;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68048371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档