Функция сборки больше не вызывается, несмотря на вызов StatefulWidget - PullRequest
0 голосов
/ 07 августа 2020

У меня есть простой экран входа в Google, и он работает. Но работает только один раз. После того, как я go вернусь и попытаюсь войти снова, все, что я вижу, это «в настоящее время вы не вошли в систему». Когда я перезапускаю все приложение, я все еще вошел в систему.

Вероятно, проблема где-то здесь:

main() {
  runApp(MaterialApp(
    home: Page1(),
  ));
}

class Page1 extends StatelessWidget {
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: RaisedButton(
          child: Text('Go!'),
          onPressed: () {
            Navigator.of(context).push(_createRoute());

            },
        ),
      ),
    );
  }
}

Route _createRoute() {
  return PageRouteBuilder(
    pageBuilder: (context, animation, secondaryAnimation) => Page2(),
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      var begin = Offset(0.0, 1.0);
      var end = Offset.zero;
      var curve = Curves.ease;

      var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));

      return SlideTransition(
        position: animation.drive(tween),
        child: child,
      );
    },
  );
}

class Page2 extends StatelessWidget {
  Widget build(BuildContext context) {
    return Scaffold(
      body: SignInDemo(),
    );
  }
}

void main2() {
  runApp(
    MaterialApp(
      title: 'Google Sign In',
      home: SignInDemo(),
    ),
  );
}

class SignInDemo extends StatefulWidget {
  @override
  State createState() => SignInDemoState();
}

class SignInDemoState extends State<SignInDemo> {
  GoogleSignInAccount _currentUser;
  String _contactText;
      @override
  void initState() {
    super.initState();
    _googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount account) {
      setState(() {

        _currentUser = account;

Возможно, вызывающее тело: SignInDemo () в классе Page2 неверно? Хотя он действительно работает, он не будет работать во второй раз во время того же прогона. Я понимаю, что сборка вызывается только один раз, и мне нужно перерисовать новый экземпляр Widget (Stateful). Но разве я не этим уже занимался? Почему это не работает?

Изменить: я собираюсь вызвать его, и решить эту проблему, избавившись от перехода между входом в систему / не вошел в систему. Если кто-то знает, как решить эту проблему, пожалуйста, посоветуйте . Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...