Giter VIP home page Giter VIP logo

Comments (9)

AbhishekDoshi-Bacancy avatar AbhishekDoshi-Bacancy commented on May 28, 2024 1

@tomgilder Sure would provide a code sample

from routemaster.

AbhishekDoshi-Bacancy avatar AbhishekDoshi-Bacancy commented on May 28, 2024 1

oh okk gotcha. would try that @tomgilder thanks for the instant help. Was using this in production level app.

from routemaster.

tomgilder avatar tomgilder commented on May 28, 2024 1

@AbhishekDoshi-Bacancy glad it's fixed!

Instead of passing data between pages, that data should be in some global state management. If the user navigates to the second URL directly your app will have to fetch the data from API.

This has also been brought up in another issue: #96

Closing this for now, but feel free to make any suggestions about passing data.

from routemaster.

tomgilder avatar tomgilder commented on May 28, 2024

Hi, what platform is this on please? There are issues with replace() on the web currently - users can sometimes go back to the page - but the navigation should work

from routemaster.

tomgilder avatar tomgilder commented on May 28, 2024

And any code sample would be useful

from routemaster.

AbhishekDoshi-Bacancy avatar AbhishekDoshi-Bacancy commented on May 28, 2024

main.dart

import 'package:flutter/material.dart';
import 'package:knuggies/screens/home.dart';
import 'package:knuggies/screens/login.dart';
import 'package:knuggies/screens/splash.dart';
import 'package:knuggies/utils/string_constants.dart';
import 'package:routemaster/routemaster.dart';
import 'package:url_strategy/url_strategy.dart';

void main() {
  setPathUrlStrategy();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final _routerDelegate = RouteMap(
    routes: {
      '/': (_) => MaterialPage(child: SplashScreen()),
      '/home': (_) => MaterialPage(child: HomeScreen()),
      '/login': (_) => MaterialPage(child: LoginScreen()),
    },
  );

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      debugShowCheckedModeBanner: false,
      themeMode: ThemeMode.dark,
      theme: ThemeData.dark(),
      title: StringConstants.appName,
      routerDelegate: RoutemasterDelegate(routesBuilder: (context) => _routerDelegate),
        routeInformationParser: RoutemasterParser(),
    );
  }
}

splash.dart

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:knuggies/utils/string_constants.dart';
import 'package:routemaster/routemaster.dart';

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    Timer(
      Duration(seconds: 2),
      () => Routemaster.of(context).replace('home'),
    );
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Image.network(
          StringConstants.splashLogoURL,
          height: MediaQuery.of(context).size.width / 10.0,
        ),
      ),
    );
  }
}

from routemaster.

AbhishekDoshi-Bacancy avatar AbhishekDoshi-Bacancy commented on May 28, 2024

@tomgilder if i use push instead of replace, it works perfectly

from routemaster.

tomgilder avatar tomgilder commented on May 28, 2024

You need to replace remove the dependency on url_strategy and change setPathUrlStrategy(); to Routemaster.setPathUrlStrategy();

I'll try to make Routemaster compatible with url_strategy or at least add something to the documentation.

from routemaster.

AbhishekDoshi-Bacancy avatar AbhishekDoshi-Bacancy commented on May 28, 2024

Hey thanks! This works perfectly. I had one more question, it might be off from the issue topic.
How can I pass data from one screen to another screen if I am using push() without showing it into URL.
Eg: I have made an API call in 1st page and now I wish to move that entire object to 2nd page.
It will be great if you can provide some reference example or docs for this scenario.
@tomgilder

from routemaster.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.