作者:梅花七 | 来源:互联网 | 2023-09-16 11:56
我正在使用Flutter构建Web应用程序,但是在部署时无法在本地服务器上运行的功能之一。
我正在使用托管在000webhost的json文件来存储应用程序获取然后显示的数据。它对于第一次获取(本地和托管)都工作正常,但是随后当我从创建的列表中选择一个选项时-应该导航到新屏幕,获取新列表并显示它-不显示新列表。
使用IDE(IntelliJ CE)在本地运行时,一切正常:提取并显示了初始列表,然后从列表中选择一个选项,导航到一个新屏幕,该屏幕显示初始列表中的图像,以及一个新图像列表。一个新列表。 (然后,可以选择一个选项,该选项导航到新屏幕,获取另一个新列表,并同时显示该列表-但是托管站点在到达此距离之前失败。)
在托管站点上,导航工作正常,从第一个http请求获取的图像将按预期显示在新屏幕的顶部,但不会出现新列表。
为什么这在本地服务器上有效,但在托管时却不起作用?为什么第一个提取操作有效,而第二个无效?
我猜测问题可能与某种我不了解的网络问题有关,因为代码在本地服务器上似乎可以正常工作。因此,我真的不知道代码的哪一部分是重要的,但是我将包括获取数据的部分。
我寻找的帖子可能已经回答了这个问题,但没有找到解决方案。我检查了这篇文章(Losing data while navigating screens in Flutter),但我认为它并不适用(除非我只是不明白,这绝对是可能的)。
class StartPage {
String collvar;
String subcollvar;
String cardtype;
String label;
String text1;
String text2;
String text3;
String text4;
String image1;
String image2;
String image3;
String image4;
String link1;
String link2;
String link3;
String link4;
String int1;
String int2;
String int3;
String int4;
StartPage(this.collvar,this.subcollvar,this.cardtype,this.label,this.text1,this.text2,this.text3,this.text4,this.image1,this.image2,this.image3,this.image4,this.link1,this.link2,this.link3,this.link4,this.int1,this.int2,this.int3,this.int4,);
StartPage.fromJson(Map json) {
collvar = json['collvar'];
subcollvar = json['subcollvar'];
cardtype = json['cardtype'];
label = json['label'];
text1 = json['text1'];
text2 = json['text2'];
text3 = json['text3'];
text4 = json['text4'];
image1 = json['image1'];
image2 = json['image2'];
image3 = json['image3'];
image4 = json['image4'];
link1 = json['link1'];
link2 = json['link2'];
link3 = json['link3'];
link4 = json['link4'];
int1 = json['int1'];
int2 = json['int2'];
int3 = json['int3'];
int4 = json['int4'];
/*print(label);*/
}
}
更新:由按钮按下触发的多个http请求和数据传递与发布在000webhost上的应用程序(完全相同的文件)一起使用,该应用程序也是托管json文件的位置(我不知道这是否使区别)。
但是,现在我发现了另一个问题-url_launcher似乎不起作用。
我已经发现我无法在与http请求相同的页面上启动url,但是当我不在同一类中发出http请求时,就能够启动url(-但这可能只是在本地服务器上)。
因此,我不知道当该应用程序托管在000webhost而不是Firebase上时,为什么多个http请求有效,并且我也不知道url_launcher为什么不起作用。
更新:网址启动器正常工作...只是需要获取最新版本的插件。