reactjs - GraphQLError : Syntax Error: Expected $, found [

标签 reactjs syntax-error graphql react-apollo

我正在尝试查询这里的graphql服务器

http://sapienscube.pythonanywhere.com/intrusion-detection-system

在Reactjs中使用Apollo进行以下查询:

const PREDICT_ATTACK_TYPE = gql`
  query Query($packets: List[List[String]) {
    predict(packets: $packets)
  }
`;
// features is an array of arrays of strings: List[List[String]] like this: [[0, tcp, http, ..., ]]
<Query query={PREDICT_ATTACK_TYPE} variables={{ features }}>
        {({ loading, error, data }) => {
          if (loading) return <div>loading..</div>;
          if (error) return <div>Error:</div>;
          console.log(data);
          return <div>{data.predict}</div>;
        }}

但是我得到了错误

GraphQLError:语法错误:预期的$,找到了[
   5 | 
   6 | import { getFeaturesArray } from "./Utils";
   7 | 
>  8 | const PREDICT_ATTACK_TYPE = gql`
   9 |   query Query($packets: List[List[String]]) {
  10 |     predict(packets: $packets)
  11 |   }

最佳答案

尽管List从技术上讲是GraphQL中的一种类型,但不能在GraphQL文档中按名称引用它。指定特定类型的List时,只需将类型包装在方括号([ ])中。

query Query($packets: [[String]]) {
  predict(packets: $packets)
}

在此,[[String]]表示ListListString

您会看到上述错误,因为解析器正在将List类型注册为$packets的类型,然后移至下一个有效字符,该字符应为$,以指示下一个变量定义的开始。

关于reactjs - GraphQLError : Syntax Error: Expected $, found [,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56261675/

相关文章:

javascript - 嵌套的 JSON 调用给出 : Uncaught SyntaxError: Missing } in template expression

javascript - 如何使用 Apollo 在 Vue 中实现有效的 Graphql 查询?

javascript - GraphQL:在文件上传期间解决 promise 时出错

reactjs - React Hook useEffect 缺少依赖项(没有在 useEffect 中移动函数)

javascript - 从 prop 事件处理程序设置时 react 状态重置

python-3.x - 结束 ='' 语法错误 : invalid syntax

rust - 是否可以使用 Tokio 和 Juniper 在 GraphQL 对象字段中执行任何类型的并行计算?

javascript - 我如何传递带有状态的函数以响应 useContext

javascript - 如何使用 setInterval 或其他方式在 React 中重新渲染特定组件?

mysql - #1064 创建用户表时出错