Исходный текст изменен после перевода - PullRequest
0 голосов
/ 26 мая 2020

Я отправляю объект с FirstPage на SecondPage. В SecondPage есть возможность перевести String объекта. Если после перевода я go вернусь к FirstPage, а затем снова перейду к SecondPage, он покажет ранее переведенный String вместо исходного 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;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...