У меня такой routing
:
routes: {
'/': (context) => MainPage(),
'/othe_page': (context) => OthePage(),
},
Navigator.pushNamed(context, '/othe_page');
Как передать блок виджету OthePage
?
У меня такой routing
:
routes: {
'/': (context) => MainPage(),
'/othe_page': (context) => OthePage(),
},
Navigator.pushNamed(context, '/othe_page');
Как передать блок виджету OthePage
?
1) передача блока в качестве аргумента
Вы должны передать свой блок в качестве аргумента в навигаторе, как показано ниже.
Navigator.pushNamed(context, '/deletewidget',
arguments: bloc);
Теперь вы должны принять этот блок на новой странице, как показано ниже.
class _DeleteWidgetState extends State<DeleteWidget> {
var bloc;
@override
Widget build(BuildContext context) {
bloc = ModalRoute.of(context).settings.arguments;
Примечание: вам необходимо создать переменную блока из метода сборки и назначить переменную блока в методе сборки.
-Когда вы вернетесь к последнему экрану, вы больше не сможете получить доступ к блоку.
2) вы можете использовать поставщика блоков в родительском виджете, чтобы получить доступ к блоку и на новом экране.
для получения дополнительных сведений ознакомьтесь с пакетом Flutter_bloc.