Flutter Web сначала загружает начальную страницу даже при загрузке URL с # / page - PullRequest
0 голосов
/ 08 июля 2020

Я пробую стандартное приложение для навигации, представленное здесь https://flutter.dev/docs/cookbook/navigation/named-routes. Даже если я открою браузер на http://localhost: 8080 / # / сек, он построит страницу 1, а затем заменит ее на страницу 2 и даже покажет пользователю кнопку возврата. Я действительно хочу, чтобы пользователь сразу перешел на вторую страницу, не передавая go. Есть идеи, пожалуйста?

Вот снова код с добавлением печати

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    title: 'Named Routes Demo',
    routes: {
      '/': (context) => FirstScreen(),
      '/second': (context) => SecondScreen(),
    },
  ));
}

class FirstScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print ("Screen 1 building");
    return Scaffold(
      appBar: AppBar(
        title: Text('First Screen'),
      ),
      body: Center(
        child: RaisedButton(
          child: Text('Launch second screen'),
          onPressed: () {
            // Navigate to the second screen using a named route.
            Navigator.pushNamed(context, '/second');
          },
        ),
      ),
    );
  }
}

class SecondScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print ("Screen 2 building");
    return Scaffold(
      appBar: AppBar(
        title: Text("Second Screen"),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            Navigator.pop(context);
          },
          child: Text('This is screen 2, go to 1!'),
        ),
      ),
    );
  }
}

1 Ответ

0 голосов

я думаю, вам следует преобразовать второй экран в StatefulWidget, чтобы добавить didChangeDependencies или initState и добавить свой Navigator.pop(context) автоматически go в FirstScreen

...