Flutter 如何避免在返回到颤振中的上一页时重建重复的小部件?
当用户登录时,他们会被推送到主页,从initstate上的数据库检索他们的数据,然后构建小部件。然而,我注意到,如果我导航到另一个页面,然后返回,那么在没有streambuilder的情况下构建的小部件(在streambuilder中手动检索数据一次)会被复制。当我说duplicated时,我的意思是完全相同的数据使用相同的小部件再次被冗余复制,因此就像用户的个人资料一样,pic可能会出现两次。对于这些情况,我大部分时间都使用listview/Flutter 如何避免在返回到颤振中的上一页时重建重复的小部件?,flutter,dart,Flutter,Dart,当用户登录时,他们会被推送到主页,从initstate上的数据库检索他们的数据,然后构建小部件。然而,我注意到,如果我导航到另一个页面,然后返回,那么在没有streambuilder的情况下构建的小部件(在streambuilder中手动检索数据一次)会被复制。当我说duplicated时,我的意思是完全相同的数据使用相同的小部件再次被冗余复制,因此就像用户的个人资料一样,pic可能会出现两次。对于这些情况,我大部分时间都使用listview/ 我如何避免这种情况,只构建一次小部件,这样如果用户
我如何避免这种情况,只构建一次小部件,这样如果用户返回页面,页面将保持不变?好吧,你不能这样做,你必须声明小部件类型的变量并在initState方法中定义它。并将此变量设置为父窗口小部件的子级。@iPatel能否提供一个示例或详细说明?我不确定如何将initstate中的此窗口小部件变量设置为父窗口小部件的子级。而且,它不仅仅是一个被复制的小部件,它的许多动态小部件又是如何工作的呢?你无法做到这一点,
build()
方法将始终被执行。向我们展示你的问题代码。您所描述的是代码的问题。正如@pskink所说,build()总是被调用的。你要做的是,在一个单例中推送相同的代码,或者导致冗余数据的东西。好吧,你不能这样做。你必须声明Widget类型的变量并在initState方法中定义它。并将此变量设置为父窗口小部件的子级。@iPatel能否提供一个示例或详细说明?我不确定如何将initstate中的此窗口小部件变量设置为父窗口小部件的子级。而且,它不仅仅是一个被复制的小部件,它的许多动态小部件又是如何工作的呢?你无法做到这一点,build()
方法将始终被执行。向我们展示你的问题代码。您所描述的是代码的问题。正如@pskink所说,build()总是被调用的。您正在做的是,在一个单例中推送相同的代码,或者导致冗余数据的事情。