0

我使用以下查询并获取值。

 const GET_VALUES = gql`
   query getValues (
     $date_begin: String!
     $date_end: String!
   ) {
       production (order_by: {datetime: desc}, 
                     where: {value94: {_gt: "0"}, 
                     _and: {datetime: {_gt: $date_begin}, 
                     _and: {datetime: {_lt: $date_end}}}}
       ){
           datetime
           value10
           value11
        }
    }
 `;

我可以动态使用“datetime,value10,value11”吗?

 const GET_VALUES = gql`
   query getValues (
     $date_begin: String!
     $date_end: String!
     $q_values: String!
   ) {
       production (order_by: {datetime: desc}, 
                     where: {value94: {_gt: "0"}, 
                     _and: {datetime: {_gt: $date_begin}, 
                     _and: {datetime: {_lt: $date_end}}}}
       ){
          $q_values
        }
    }
 `;

我有:

错误:[nuxt] 安装应用程序时出错:语法错误:预期名称,找到 $

GraphQL request (13:12)
12: 
13:            $q_values
               ^
14:         }
4

1 回答 1

0

是的,有可能。使用 graphql 装饰器,模板文字仍然会替换占位符(例如${expression})。例如

 let q_values = "datetime, value10, value11"
 const GET_VALUES = gql`
   query getValues (
     $date_begin: String!
     $date_end: String!
   ) {
       production (order_by: {datetime: desc}, 
                     where: {value94: {_gt: "0"}, 
                     _and: {datetime: {_gt: $date_begin}, 
                     _and: {datetime: {_lt: $date_end}}}}
       ){
           ${q_values}
        }
    }
 `;

编辑:另外,由于您使用的是 vue-apollo,请查看响应式查询定义

于 2019-07-18T08:02:20.260 回答