构造函数的函数参数为 null 。 #扑
Function parameter of contructor was null . #Flutter
我有一个 class 可以在 SignInPage 和 SignUpPage 之间更改 UI。
class Authenticate extends StatefulWidget {
@override
_AuthenticateState createState() => _AuthenticateState();
}
class _AuthenticateState extends State<Authenticate> {
bool showSignIn = true;
toggleView() {
setState(() {
showSignIn = !showSignIn;
});
}
@override
Widget build(BuildContext context) {
if (showSignIn) {
return SignIn(
toggleView(),
);
} else
return SignUp(
toggle: toggleView(),
);
;
}
}
这是我在 SignInPage 中的构造函数
Function toogle;
@override
SignIn(Function fun) {
this.toogle = fun;
}
toogle 始终为 null,我不知道为什么 :(
如果你想传递函数,你应该通过引用传递它。现在,您正在执行函数并传递其结果。
改变这个:
return SignIn(
toggleView(),
);
对此:
return SignIn(
toggleView,
);
此外,不确定构造函数是否需要 @override
,也许您可以删除它。
我有一个 class 可以在 SignInPage 和 SignUpPage 之间更改 UI。
class Authenticate extends StatefulWidget {
@override
_AuthenticateState createState() => _AuthenticateState();
}
class _AuthenticateState extends State<Authenticate> {
bool showSignIn = true;
toggleView() {
setState(() {
showSignIn = !showSignIn;
});
}
@override
Widget build(BuildContext context) {
if (showSignIn) {
return SignIn(
toggleView(),
);
} else
return SignUp(
toggle: toggleView(),
);
;
}
}
这是我在 SignInPage 中的构造函数
Function toogle;
@override
SignIn(Function fun) {
this.toogle = fun;
}
toogle 始终为 null,我不知道为什么 :(
如果你想传递函数,你应该通过引用传递它。现在,您正在执行函数并传递其结果。
改变这个:
return SignIn(
toggleView(),
);
对此:
return SignIn(
toggleView,
);
此外,不确定构造函数是否需要 @override
,也许您可以删除它。