Big*_*gus 5 graphql react-apollo apollo-client
假设我有两张表,一张包含产品,另一张包含价格。
在 Graphql 中,查询可能如下所示:
option {
id
price {
id
optionID
price
date
}
description
}
Run Code Online (Sandbox Code Playgroud)
我向用户展示了一个表单(在 React 中),他们可以在其中同时输入产品详细信息和价格。
当他们提交表单时,我需要在“产品”表中创建一个条目,然后在“价格”表中创建一个相关条目。
我对 Graphql 和 React 非常陌生,我发现它的学习曲线很陡峭,并且一直在关注 Apollo 教程和阅读文档,但到目前为止,此任务的解决方案仍然是个谜!
有人能把我从痛苦中解脱出来,给我,或者给我指明方向,处理必要的突变的最简单的例子吗?
长话短说,如果您想优化尽可能少的请求,那么这实际上应该由您的服务器处理。
问题:这里的问题是你有依赖性。您需要首先创建产品,然后使用该产品的 ID 将其与新价格关联起来。
解决方案:在服务器上实现此功能的最佳方法是在突变输入中向 Product 添加另一个字段,该字段允许您在同一请求输入中输入 Price 的详细信息。这在 Scaphold 上称为“嵌套创建”。
例如:
// Mutation
mutation CreateProduct ($input: CreateProductInput!) {
createProduct(input: $input) {
changedProduct {
id
name
price {
id
amount
}
}
}
}
// Variables
{
input: {
name: "My First Product",
price: {
amount: 1000
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在服务器上,您可以解析解析器参数中的价格对象,并在创建产品时创建新的价格对象。同时,您也可以在服务器上一次性关联它们。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
889 次 |
| 最近记录: |