2017-05-12 47 views
3

说我有两个表,包含的产品之一,另含价格。阿波罗/阵营突变两个关系表

在Graphql查询可能是这样的:

option { 
    id 
    price { 
     id 
     optionID 
     price 
     date 
    } 
    description 
} 

我向用户呈现一个单一的形式(反应),他们可以在同一时间进入产品的细节和价格。

当他们提交表单我需要建立在“产品”表中的条目,然后创建在“价格”表中的相关条目。

我对Graphql和React非常陌生,并且发现它是一个陡峭的学习曲线,并且一直遵循Apollo教程和阅读文档,但迄今为止解决方案仍然是一个谜!

可能有人把我从我的痛苦,并给我,或点我的方向,处理这个必要突变最简单的例子?

+0

你是否对服务器实现或客户端实现的麻烦。例如,您在使用成功的服务器响应更新UI中的数据库表或表时遇到问题。 –

回答

2

长话短说,在这个时候,实际上应该由你的服务器,如果你想优化尽可能少的要求尽可能处理。

问题:这里的问题是,你有依赖。您需要首先创建产品,然后使用该产品的ID,然后将其与新的价格相关联。

解决方案:在服务器上实现此功能的最佳方式是在突变输入中向产品添加另一个字段,以允许您在同一请求输入中输入Price的详细信息。这在Scaphold上称为"nested create"

例如:

// Mutation 
mutation CreateProduct ($input: CreateProductInput!) { 
    createProduct(input: $input) { 
    changedProduct { 
     id 
     name 
     price { 
     id 
     amount 
     } 
    } 
    } 
} 

// Variables 
{ 
    input: { 
    name: "My First Product", 
    price: { 
     amount: 1000 
    } 
    } 
} 

然后,在服务器上,你可以在你的解析参数解析出的价格目标,并同时创造产品创造新的价格目标。同时,您还可以在服务器上一次性关联它们。

希望这会有所帮助!

+0

感谢您的回复,我会尽力解决我的问题。 – Bigus