来自 Flutter 的翻译器包中的'_Future<dynamic>'实例而不是输入值



这个作用域给了我一个实例_Future但是我想得到翻译后的文本。

Future<dynamic> translate(String input) async {
final translator = GoogleTranslator();
var result;
var translation = await translator
.translate(input, to: 'tr')
.then((value) => {result = value});
return result;
}

这样行吗?我猜.translate函数返回一个Translate实例。您需要text属性来获得String

下面的代码是错误的!

Future<String> translate(String input) async {
final translator = GoogleTranslator();
var result;
var translation = await translator
.translate(input, to: 'tr')
.then((value) => {result = value});
return result.text;
}

您还使用then子句并将翻译结果转换为value,因此您不需要使用await并在这种情况下设置vartranslation。或者您可以使用await并删除then。但是你不应该在同一个异步方法中同时使用awaitthen

所以应该使用下面的代码:
Future<String> translate(String input) async {
final translator = GoogleTranslator();
var translation = await translator
.translate(input, to: 'tr');
return translation.text;
}

相关内容

  • 没有找到相关文章

最新更新