Flutter报错Invalid radix-10 number (at character 1) null解决方案求助
问题根因
报错是因为你代码中调用int.parse()时传入的参数是字符串"null",无法被识别为十进制整数。本质是value['Score']字段为null,调用toString()后得到的是"null"字符串,不符合int.parse()的入参要求。
修复方案
- 优先使用
int.tryParse()替代int.parse(),同时增加空值判断,转换失败时可以设置兜底默认值,修改后的代码如下:
child: Column( children: [ ...(question[questionIndex]['answer'] as List<Map<String,Object>>).map((value){ // 空值校验+安全转换,转换失败默认返回0,可根据业务需求调整默认值 int score = int.tryParse(value['Score']?.toString() ?? '') ?? 0; return Answer(() => answerQuestion(score), value['text'].toString()); }).toList(), ], ),
- 排查你的question数据源:检查所有
answer数组下的元素,是否都正确设置了Score字段,注意字段名大小写是否一致、有没有拼写错误,确保业务层面不会出现Score为null的情况。 - 如果业务要求
Score必须有有效值,你可以增加过滤逻辑,直接跳过Score为null的无效选项,避免渲染异常数据。
内容的提问来源于stack exchange,提问作者Mohammad alqannas
相关产品推荐
相关产品推荐

