You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter使用translator插件无法将Translation类型赋值给String类型

错误原因

你引入的translator插件中,translate()方法的返回值是Translation类型对象,而非原生String类型。你定义的translatedPhrase是字符串类型变量,直接把Translation实例赋值给它就会触发类型不匹配报错。

修复方法

Translation类型对象通过.text属性存储翻译完成的纯字符串结果,只需要修改赋值语句,读取该属性赋值即可,同时可以移除冗余的外层setState调用,减少不必要的组件重绘。

修改后的翻译按钮点击逻辑代码如下:

MaterialButton(
  child: const Text("Translate"),
  color: Colors.white,
  onPressed: () {
    translator.translate(textController.text, from: "en", to: "es").then((t) {
      setState(() {
        // 读取Translation对象的text属性,获取字符串类型的翻译结果
        translatedPhrase = t.text;
      });
    });
  },
),
效果验证

修改后重新运行代码即可正常使用功能:

  • 点击翻译按钮无类型报错,可正常发起翻译请求
  • 翻译结果可正常显示在下方灰色区域的文本组件中
  • 清空、复制按钮可正常调用translatedPhrase变量,无类型异常

内容的提问来源于stack exchange,提问作者Nate Givens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.19 16:15:46