如何向List中添加数据?在Widget内操作List调用add方法报空错误如何解决?
问题原因
你仅声明了List<String>类型的变量ref,没有为它创建实际的列表实例,此时变量值为null,对null调用add方法就会触发你收到的空调用报错。
解决方案
根据你的业务场景可以选择以下任意一种处理方式:
- 声明时直接初始化空列表
直接修改你的代码即可正常运行:
也可以用Dart类型推导简化写法:uid = widget.uid; List<String> ref = []; ref.add(uid);final ref = <String>[]; ref.add(uid); - 可空类型场景下先做空赋值
如果你因为业务需要将ref声明为可空类型List<String>?,调用add前先做空判断赋值:uid = widget.uid; List<String>? ref; ref ??= []; ref.add(uid); - Flutter State类全局属性场景下初始化
如果ref是State类的全局属性,需要依赖widget参数赋值,可以在initState生命周期中完成初始化:class _MyWidgetState extends State<MyWidget> { late List<String> ref; @override void initState() { super.initState(); ref = []; ref.add(widget.uid); } }
内容的提问来源于stack exchange,提问作者daniyar
相关产品推荐
相关产品推荐

