我有一个类可以在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总是空的,我不知道为什么:(
如果要传递函数,则应通过引用传递。现在,您正在执行该函数并传递其结果。
更改此项:
return SignIn(
toggleView(),
);
到此:
return SignIn(
toggleView,
);
此外,不确定构造函数是否需要@override
,可能可以将其删除。