Flutter 为什么程序只在我按下Ctrl+;s

Flutter 为什么程序只在我按下Ctrl+;s,flutter,Flutter,如果我从数据库得到肯定的响应,我希望我的程序打印文本“数据已插入!”。它工作得非常好,除了只有在按下Ctrl+s键时才显示文本 有人知道我该怎么解决吗 或者,我如何告诉程序自动按Ctrl+S键 (请忽略其他小部件和变量,我没有把它们全部放进去) 如果你有任何建议,请告诉我 谢谢!:) 在_buildInsertedData()中,我返回文本(“”),以便程序首次运行时不会显示任何内容。这可能不是最好的方法。 (您可以向下滚动到“build”小部件的末尾,在那里调用“\u buildInserte

如果我从数据库得到肯定的响应,我希望我的程序打印文本“数据已插入!”。它工作得非常好,除了只有在按下Ctrl+s键时才显示文本

有人知道我该怎么解决吗

或者,我如何告诉程序自动按Ctrl+S键

(请忽略其他小部件和变量,我没有把它们全部放进去)

如果你有任何建议,请告诉我

谢谢!:)

在_buildInsertedData()中,我返回文本(“”),以便程序首次运行时不会显示任何内容。这可能不是最好的方法。 (您可以向下滚动到“build”小部件的末尾,在那里调用“\u buildInsertedData()”)


我猜这是因为
\u buildInsertedData
返回一个小部件,您也将其添加到了树中-这是正确的。但是在onPressed上调用该函数不会更新树中的小部件。当您按下按钮时,它会更新值,但在按下Ctrl-S之前,您不会重建小部件树

要重建树,可以调用

setState(() { 
   //  you can set any new values here (but not necessary)
 });
所以也许你想这样做:

 onPressed: ......
 // b gets updated somewhere here before the future
 Future.delayed(Duration(seconds: 1),(){
              if (b == 1) {
                setState(() {    }); // rebuilds tree on screen
              }
            });

你也检查<代码> B==1 两次-考虑删除一个:)/p>什么是<代码> B<代码>什么时候设置?

setState(() { 
   //  you can set any new values here (but not necessary)
 });
 onPressed: ......
 // b gets updated somewhere here before the future
 Future.delayed(Duration(seconds: 1),(){
              if (b == 1) {
                setState(() {    }); // rebuilds tree on screen
              }
            });