我不知道有什么方法可以专门使用现有工具来做到这一点。
话虽如此,您可以从这些查询中创建一个模块(假设您使用的是 ES6+ 和 package graphql-tag
):
// queries.js
export const GetAllTodos = gql`...`
export const GetAllTests = gql`...`
// Where you do a query
import { GetAllTodos, GetAllTests } from './queries.js';
apollo.query({ query: GetAllTodos }).then(( { data } => data);
如果您需要更多动态性,该queries.js
模块可以导出一个可以映射到这些的函数:
// queries.js
export const queries = {
'GetAllTodos': gql`...`,
'GetAllTests': gql`...`'
};
export default function selectQuery(key) {
return queries[key];
}
// Where you do a query
import selectQuery from './queries.js';
apollo.query({ query: selectQuery('GetAllTodos') }).then(( { data } => data);
然后,您可以对此进行扩展以尝试搜索与“TodoQuery”匹配的查询,但将查询命名为其他类似原始示例中的名称。