Flutter报错:Text组件必须传入非空字符串,如何解决?
解决Flutter Text组件非空断言错误问题
问题场景
代码中Text组件存在断言判断,要求传入的data参数不可为空,但当前textSpan被赋值为null,在构建依赖MediaQuery、_InheritedProviderScope<LocationProvider?>、_InheritedTheme、_LocalizationsScope-[GlobalKey#42a4f]的Consumer时触发断言错误:
Text组件必须传入非空字符串。
报错来源:package:flutter/src/widgets/text.dart
断言失败位置:第444行第10位:'data != null'
解决办法
- 给Text组件的
data参数设置非空兜底值,比如空字符串,避免null传入:
Text( data ?? '', // 当data为null时用空字符串替代 // 其他配置属性 )
- 若无需显示文本,直接用
SizedBox.shrink()替换Text组件,跳过断言检查:
SizedBox.shrink()
- 调整textSpan的赋值逻辑,保证当textSpan为null时,data参数必有有效内容:
Text( textSpan == null ? "默认文本" : "", textSpan: textSpan, )
内容的提问来源于stack exchange,提问作者Aravind Reddy
相关产品推荐
相关产品推荐

