Flutter翻译扩展引用报错:'String'不是'int'类型的index子类型
错误原因与解决方法
错误原因
- 从提供的JSON结构来看,
widget.results[0]['name']对应的是字符串值"Queen of Wands",并非包含子属性的对象。 - 失败代码中尝试通过
widget.results[0]['name']['meanings']访问数据,本质是对字符串使用字符串类型的键('meanings')进行索引操作,但字符串的索引仅支持整数(用于定位单个字符),因此触发了类型错误:类型'String'不是类型'int'的'index'子类型。
修复方案
meanings是和name同级的顶层属性,并非name的子属性,因此需要修正数据访问路径,直接从widget.results[0]下获取meanings即可,修复后的代码与原本可正常运行的代码一致:
final translator = GoogleTranslator(); var value1; void initContent() async { value1 = await translator.translate( widget.results[0]['meanings']['light'].join('\n\n'), to: 'fr', ); }
内容的提问来源于stack exchange,提问作者J L
相关产品推荐
相关产品推荐

