在 GraphQL 中,我们经常需要向查询参数中传递数组。但是,如果不正确地传递数组,就会导致意想不到的结果。因此,本文将介绍如何正确地传递数组。
1. 什么是数组?
在计算机科学中,数组是一种数据结构,它由一系列同类型的元素组成。我们通常使用数组来存储和处理一组值,例如数字、字符串、对象等。在 JavaScript 中,数组由一对中括号 [] 包围,其中每个元素用逗号分隔。
例如:
----- ------- - --- -- -- --- ----- ------ - ------- -------- -------- ----- ------ - - - ----- -------- ---- -- -- - ----- ------ ---- -- -- - ----- ---------- ---- -- -- --
2. 如何在 GraphQL 中传递数组?
在 GraphQL 中,我们可以使用列表类型来声明一个由相同类型元素组成的数组。例如:
---- ----- - -------- ----- ------- -------- ------- -------- - ---- ------ - ----- ------ ---- --- -
在上面的例子中,我们声明了三个字段:numbers、colors 和 people,它们都是由相同类型的元素组成的数组。numbers 的元素类型是 Int,colors 的元素类型是 String,people 的元素类型是 Person。
如果我们想要从客户端向这些查询参数中传递数组,我们可以使用以下语法:
----- ----------------- ------ -------- --------- -------- --------- - ---------------- --------- -------------- -------- -------------- -------- - ---- --- - -
在上面的例子中,我们声明了三个查询参数:numbers、colors 和 people,它们都是由相同类型的元素组成的数组。我们使用 $ 符号和参数名来声明查询参数。例如,$numbers 表示名为 numbers 的查询参数。我们还声明了一个名为 MyQuery 的查询,它使用我们声明的三个查询参数来查询三个字段:numbers、colors 和 people。
现在,让我们考虑一些常见的错误,以帮助你避免在传递数组时犯错。
3. 常见的错误
3.1 忘记使用方括号
当我们声明一个列表类型时,我们必须使用方括号 []。如果我们忘记使用方括号,就会导致语法错误。
例如,以下查询参数声明是错误的:
----- ---------------- ---- ------- ------- ------- ------- - ---------------- -------- -------------- ------- -------------- ------- - ---- --- - -
我们可以看到,在上面的例子中,我们没有使用方括号来声明列表类型的查询参数。因此,这个查询参数声明是错误的,会导致语法错误。
3.2 忘记使用 $ 符号
当我们声明查询参数时,我们必须使用 $ 符号和参数名。如果我们忘记使用 $ 符号,就会导致语法错误。
例如,以下查询参数声明是错误的:
----- ---------------- ------ ------- --------- ------- --------- - ---------------- -------- -------------- ------- -------------- ------- - ---- --- - -
我们可以看到,在上面的例子中,我们没有使用 $ 符号来声明查询参数。因此,这个查询参数声明是错误的,会导致语法错误。
3.3 忘记使用括号
当我们在查询参数中传递数组时,我们必须使用括号来包裹数组。如果我们忘记使用括号,就会导致语法错误。
例如,以下查询参数声明是错误的:
----- ----------------- ------ -------- --------- -------- --------- - ------- -------- -------- ------ ------- ------- ------ ------- ------- - ---- --- - -
我们可以看到,在上面的例子中,我们没有使用括号来包裹数组。因此,这个查询参数声明是错误的,会导致语法错误。
3.4 忘记结束数组
当我们在查询参数中传递数组时,我们必须在数组的末尾添加一个逗号。如果我们忘记添加逗号,就会导致语法错误。
例如,以下查询参数声明是错误的:
----- ----------------- ------ -------- --------- -------- --------- - ---------------- -- - --- -------------- ------ ------- -------- -------------- -- ----- -------- ---- -- -- - ----- ------ ---- -- -- - ----- ---------- ---- -- --- - ---- --- - -
我们可以看到,在上面的例子中,我们没有在数组的末尾添加逗号。因此,这个查询参数声明是错误的,会导致语法错误。
4. 示例代码
现在,让我们看一些示例代码,以展示如何在 GraphQL 中正确地传递数组。
----- ----------------- ------ -------- --------- -------- --------- - ---------------- --------- -------------- -------- -------------- -------- - ---- --- - -
----- ----- - ---- ----- ----------------- ------ -------- --------- -------- --------- - ---------------- --------- -------------- -------- -------------- -------- - ---- --- - - -- ----- --------- - - -------- --- -- -- --- ------- ------- -------- -------- ------- - - ----- -------- ---- -- -- - ----- ------ ---- -- -- - ----- ---------- ---- -- -- -- -- -------------- ------ --------- ---------------- -- - -------------------- ---
在上面的示例代码中,我们声明了一个名为 MyQuery 的查询,它使用三个查询参数:numbers、colors 和 people。我们通过 variables 对象来传递这些查询参数。在 variables 对象中,我们使用了正确的语法来声明三个数组:numbers、colors 和 people。
5. 结论
在 GraphQL 中,正确地传递数组对于查询参数的正确性至关重要。如果我们不使用正确的语法来声明和传递数组,就会导致意想不到的结果。因此,我们应该使用本文中介绍的正确的语法来声明和传递数组,以确保我们的查询参数能够正常工作。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6720bf8d2e7021665e03dbeb