Php 颤振中如何传递数据

Php 颤振中如何传递数据,php,flutter,barcode-scanner,inkscape,Php,Flutter,Barcode Scanner,Inkscape,如何从php传递数据以获取信息,我尝试调用它,但它在flatter中显示为null。首先,我有一个数据库,有代码,还有php文件来获取信息。我正在使用inkscape创建条形码来扫描它 例如,我创建了包含“P002”的条形码,数据库中也有该代码。但我从中扫描,它们在调试控制台Flutter中显示为null 这个来自颤振的例子,我尝试调用 Future<Product> getProduct()async{ await http.get("https://smiley

如何从php传递数据以获取信息,我尝试调用它,但它在flatter中显示为null。首先,我有一个数据库,有代码,还有php文件来获取信息。我正在使用inkscape创建条形码来扫描它

例如,我创建了包含“P002”的条形码,数据库中也有该代码。但我从中扫描,它们在调试控制台Flutter中显示为null

这个来自颤振的例子,我尝试调用

Future<Product> getProduct()async{
    await http.get("https://smileylion.com/easyshopping/php/getproduct.php?code=${widget.code}",)
        .then((response){
          if(jsonDecode(response.body)!=null){
            setState(() {
           product = Product.fromJson(jsonDecode(response.body));
            });
            
          }
    });
    return product;
  }
Future getProduct()异步{
等待http.get(“https://smileylion.com/easyshopping/php/getproduct.php?code=${widget.code}“,)
.然后((回应){
if(jsonDecode(response.body)!=null){
设置状态(){
product=product.fromJson(jsonDecode(response.body));
});
}
});
退货产品;
}

我的问题是,如何传递数据而不显示空值?

您使用的API是公共的吗?如果是这种情况,请尝试使用您提到的端点:

https://smileylion.com/easyshopping/php/getproduct.php?code=POO2


这将返回null,因此这是后端(数据库或服务)的问题,而不是Flatter的问题。

您好,我在POSTMAN API中尝试了返回信息,但我尝试扫描Flatter中的条形码“P002”,但它们仍然无法返回null。在这种情况下,是颤振还是后端服务问题?我如何解决这个问题呢?问题在于它的flatter函数,因为函数是如何构造的,您希望它返回一个产品,请尝试以下操作:
Future getProduct()async{final res=wait http.get(“https://smileylion.com/easyshopping/php/getproduct.php?code=${widget.code}”);打印(res.body)//要查看数据…如果(res.body!=null){return Product.fromJson(jsonDecode(res.body));}return null;}
@leejiajia如果您使用的是有状态小部件,则可以声明Product类型的变量并对其进行初始化。我不知道您在哪里执行该函数,但假设您在呈现此小部件时调用它。initState(){getProduct()}现在,您可以将函数的数据类型修改为void,并遵循已经运行的逻辑,只是现在您必须添加一个setState,并在其中将您从请求中收到的值赋给您在开始时声明的变量。@leejiajia这是我提到的一个示例,您必须使其适应您的代码。另一件事,理想的情况是你与州经理一起工作,如:Flatter_bloc、provider、get、river、redux等。非常感谢你在编码方面的帮助,我是Flatter的新手,感谢你提供的示例。我将以这个例子为指导。最后我把信息说出来了。