Flutter Web - Как перезагрузить текущую активную страницу

Я использую Flutter для разработки веб-сайта. С Flutter все работает нормально, кроме случаев перезагрузки страницы. Когда я нажимаю кнопку обновления в браузере, все веб-приложение перезагружается.

Например, если я перешел на четыре страницы с начальной страницы, когда я нажимаю кнопку обновления с четвертой страницы, начальная страница загружается, и мне придется вручную полностью перейти к четвертой странице снова.

Есть ли способ загрузить текущую активную страницу во Flutter?


person Ashfaq    schedule 04.01.2020    source источник


Ответы (3)


Оцените навигацию с помощью именованных маршрутов, поскольку он легко отображает URL-адреса при использовании Flutter Web.

РЕДАКТИРОВАТЬ: Если вам нужны параметры URL (например, идентификатор, токен ...), ознакомьтесь с эту статью.

person MickaelHrndz    schedule 04.01.2020
comment
Я использую именованные маршруты, но обновление браузера по-прежнему не перезагружает текущую активную страницу - person Ian Pinto; 05.03.2020
comment
именованные маршруты работают нормально, когда мы не передавали данные с предыдущей страницы или не нужно было помнить, на какой вкладке мы были и т. д., в противном случае это не сработает. - person Abdullah Khan; 23.08.2020
comment
В моем случае приложение полностью перезагружается, даже с использованием именованных маршрутов. Какие-нибудь решения на данный момент? - person atereshkov; 13.11.2020
comment
Я отредактировал свой ответ, включив в него статью о том, как использовать параметры URL. - person MickaelHrndz; 13.11.2020

Или вы можете просто использовать это, поскольку оно обновляет все окно изначально

import 'dart:html' as html;
html.window.location.reload();
person Shekar Mudaliyar    schedule 07.01.2020
comment
Это больше запрещено: dart-lang.github.io/linter/lints/ - person Radek; 26.05.2020
comment
pub.dev/packages/universal_html - хороший вариант. - person Philipp Cherubim; 05.04.2021

Используйте навигатор, чтобы перейти на ту же страницу. .ie. Если CurrentPage () - это ваша страница, которую необходимо обновить, используйте:

Navigator.of (context) .push (MaterialPageRoute (builder: (BuildContext context) = ›CurrentPage ()));

Это перезагрузит страницу.

person Technical Radar    schedule 27.10.2020