Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何避免在返回到颤振中的上一页时重建重复的小部件?_Flutter_Dart - Fatal编程技术网

Flutter 如何避免在返回到颤振中的上一页时重建重复的小部件?

Flutter 如何避免在返回到颤振中的上一页时重建重复的小部件?,flutter,dart,Flutter,Dart,当用户登录时,他们会被推送到主页,从initstate上的数据库检索他们的数据,然后构建小部件。然而,我注意到,如果我导航到另一个页面,然后返回,那么在没有streambuilder的情况下构建的小部件(在streambuilder中手动检索数据一次)会被复制。当我说duplicated时,我的意思是完全相同的数据使用相同的小部件再次被冗余复制,因此就像用户的个人资料一样,pic可能会出现两次。对于这些情况,我大部分时间都使用listview/ 我如何避免这种情况,只构建一次小部件,这样如果用户

当用户登录时,他们会被推送到主页,从initstate上的数据库检索他们的数据,然后构建小部件。然而,我注意到,如果我导航到另一个页面,然后返回,那么在没有streambuilder的情况下构建的小部件(在streambuilder中手动检索数据一次)会被复制。当我说duplicated时,我的意思是完全相同的数据使用相同的小部件再次被冗余复制,因此就像用户的个人资料一样,pic可能会出现两次。对于这些情况,我大部分时间都使用listview/


我如何避免这种情况,只构建一次小部件,这样如果用户返回页面,页面将保持不变?

好吧,你不能这样做,你必须声明小部件类型的变量并在initState方法中定义它。并将此变量设置为父窗口小部件的子级。@iPatel能否提供一个示例或详细说明?我不确定如何将initstate中的此窗口小部件变量设置为父窗口小部件的子级。而且,它不仅仅是一个被复制的小部件,它的许多动态小部件又是如何工作的呢?你无法做到这一点,
build()
方法将始终被执行。向我们展示你的问题代码。您所描述的是代码的问题。正如@pskink所说,build()总是被调用的。你要做的是,在一个单例中推送相同的代码,或者导致冗余数据的东西。好吧,你不能这样做。你必须声明Widget类型的变量并在initState方法中定义它。并将此变量设置为父窗口小部件的子级。@iPatel能否提供一个示例或详细说明?我不确定如何将initstate中的此窗口小部件变量设置为父窗口小部件的子级。而且,它不仅仅是一个被复制的小部件,它的许多动态小部件又是如何工作的呢?你无法做到这一点,
build()
方法将始终被执行。向我们展示你的问题代码。您所描述的是代码的问题。正如@pskink所说,build()总是被调用的。您正在做的是,在一个单例中推送相同的代码,或者导致冗余数据的事情。