打开文本字段会导致父部件重建
Opening a text field causes the parrent widget to rebuild
我的应用程序结构如下:
class MainPage extends StatefulWidget {
MainPage({Key? key}) : super(key: key);
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
@override
Widget build(BuildContext context) {
BlocProvider.of<NavigationBloc>(context).add(const DashboardEvent());
int _selectedIndex = 0;
return Scaffold(
appBar: AppBar(
elevation: 0,
主页负责通过导航块进行导航。不同的按钮根据我要显示的页面添加不同的事件。到目前为止,一切正常,但突然间,当我在我的应用程序中打开任何 TextField 时,它会导致此主页重建,调用 DashboardEvent 并且带有文本字段的页面消失。
我知道打开 TextField 会导致 flutter 调用 build 方法,但到目前为止,只导致页面重建,而不是父 widget。我不知道为什么它突然表现得像这样。是否有任何我不记得可能导致此行为的设置可以切换?谢谢
class MainPage extends StatefulWidget {
MainPage({Key? key}) : super(key: key);
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
@override
initState(){
BlocProvider.of<NavigationBloc>(context).add(const DashboardEvent());
int _selectedIndex = 0;
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0,
我的应用程序结构如下:
class MainPage extends StatefulWidget {
MainPage({Key? key}) : super(key: key);
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
@override
Widget build(BuildContext context) {
BlocProvider.of<NavigationBloc>(context).add(const DashboardEvent());
int _selectedIndex = 0;
return Scaffold(
appBar: AppBar(
elevation: 0,
主页负责通过导航块进行导航。不同的按钮根据我要显示的页面添加不同的事件。到目前为止,一切正常,但突然间,当我在我的应用程序中打开任何 TextField 时,它会导致此主页重建,调用 DashboardEvent 并且带有文本字段的页面消失。
我知道打开 TextField 会导致 flutter 调用 build 方法,但到目前为止,只导致页面重建,而不是父 widget。我不知道为什么它突然表现得像这样。是否有任何我不记得可能导致此行为的设置可以切换?谢谢
class MainPage extends StatefulWidget {
MainPage({Key? key}) : super(key: key);
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
@override
initState(){
BlocProvider.of<NavigationBloc>(context).add(const DashboardEvent());
int _selectedIndex = 0;
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0,