我正在发送 对象 从 FirstPage
到 SecondPage
. 在 SecondPage
有一个选项来翻译 String
的对象。翻译后,如果我回到 FirstPage
然后再次导航到 SecondPage
它显示了之前翻译的 String
代替原来 String
. 但我希望得到原始的字符串。这是我的代码。
class PostDetailsPage extends StatefulWidget {
final Post post;
PostDetailsPage({
@required this.post,
});
@override
_PostDetailsPageState createState() => _PostDetailsPageState();
}
class _PostDetailsPageState extends State<PostDetailsPage> {
Post _post;
@override
void initState() {
super.initState();
_post = widget.post;
}
// for translation
var translatedPost = await TranslationService.translatePost(languageCode, _post);
setState(() {
_post = translatedPost;
});
// inside build()
@override
Widget build(BuildContext context) {
...
Container(
padding: const EdgeInsets.only(top: 20.0, left: 20.0),
child: Text(_post.title),
),
Container(
padding: const EdgeInsets.only(top: 20.0, left: 20.0),
child: Text(_post.description),
),
}
这里是翻译的函数。
static Future<Post> translatePost(
String languageCode, Post post) async {
var translator = GoogleTranslator();
String title = await translator.translate(post.title, to: languageCode);
String description =
await translator.translate(post.description, to: languageCode);
post.title = title;
post.description = description;
return post;
}