#flutter #dart
#трепетать #dart
Вопрос:
я попытался получить доступ к методу из моего файла глобальных переменных, но я не знаю как. Это основной код, с помощью которого я пытаюсь вызвать метод:
import '../../global_variables.dart';
import '../../main_components/default_button.dart';
class WelcomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
GlobalVariables().init(context);
final globalVariables = GlobalVariables();
final screen = GlobalVariables.screen;
return DefaultButton(
screen: screen,
txt: 'Entrar',
style: kWhiteButtonTextStyle,
color: kBlackColor,
function: globalVariables.NavigationToLoginPage(context),
),
}
}
Это код файла глобальных переменных:
import 'pages/login/login_page.dart';
class GlobalVariables {
static MediaQueryData _mediaQueryData;
static Size screen;
NavigationToLoginPage(BuildContext context) {
Navigator.push(
context, MaterialPageRoute(builder: (context) => LoginPage()));
}
И это класс button по умолчанию, я должен вызвать этот метод в свойстве onPressed.
const DefaultButton({
Key key,
@required this.screen,
@required this.txt,
@required this.style,
@required this.color,
@required this.function,
}) : super(key: key);
final Size screen;
final String txt;
final TextStyle style;
final Color color;
final Function function;
@override
Widget build(BuildContext context) {
return FlatButton(
child: Text(
txt,
style: style,
),
color: color,
padding: EdgeInsets.only(
top: screen.height * 0.02,
left: screen.width * 0.3,
bottom: screen.height * 0.02,
right: screen.width * 0.3,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
onPressed: function,
);
}
}
Ответ №1:
Сделайте это:
return DefaultButton(
screen: screen,
txt: 'Entrar',
style: kWhiteButtonTextStyle,
color: kBlackColor,
function: () => globalVariables.NavigationToLoginPage(context),
),
Комментарии:
1. Извини, чувак, но это не сработало… Мой экран теперь черный, ха-ха
2. Я так думаю, но не совсем, потому что экран моего приложения теперь черный, я попытался перезапустить, но не сработало.
3. Хорошо, теперь функция onPressed работает, но с глобальными переменными ничего не происходит, и она не указывает на страницу входа.