我正在开发一个 Blazor MAUI 应用程序,其中我有一个需要存储公司和客户详细信息的订单对象 (PosOrder)。订单对象由服务类 (PosOrderService) 管理,我遇到了从登录页面导航到主页时客户详细信息丢失的问题。
这是我的实施概述:
public class PosOrder
{ // 其他属性...
public Company Company { get; set; }
public Customer Customer { get; set; }
public PosOrder()
{
// Initialize other properties...
Company = new Company();
Customer = new Customer();
}
}
在登录页面,我检索 PosOrderService 实例并使用 PosOrderService.UpdateOrder 方法更新公司详细信息。这工作正常,我可以在订单对象中看到更新的公司详细信息。
但是,当我导航到主页并再次检索 PosOrderService 实例时,我注意到客户详细信息不再出现在订单对象中。好像在导航过程中丢失了客户详细信息。
public class PosOrderService
{
private PosOrder _order;
public PosOrderService()
{
// Initialize the order object
_order = new PosOrder();
}
public PosOrder GetOrder()
{
return _order;
}
public void UpdateOrder(PosOrder updatedOrder)
{
_order = updatedOrder;
}
}
这就是我在登录时的称呼
private PosOrderService _orderService=new PosOrderService(); PosOrder CurrentOrder = _orderService.GetOrder(); CurrentOrder.posCompany = CompanyResponse[0]; _orderService.UpdateOrder(CurrentOrder);
这就是我在主页上的称呼
PosOrder currentOrder = _orderService.GetOrder(); currentOrder.Customer = value; _orderService.UpdateOrder(currentOrder);
我不确定在页面之间导航时可能导致客户详细信息丢失的原因。在 Blazor 中使用共享对象和数据时,我是否遗漏了什么或应该注意的任何常见陷阱?
如有任何关于如何调查和解决此问题的见解或建议,我们将不胜感激。谢谢!