在 redux 操作中反应 apollo 多个查询
Posted
技术标签:
【中文标题】在 redux 操作中反应 apollo 多个查询【英文标题】:React apollo multiple query in redux action 【发布时间】:2017-12-04 17:09:14 【问题描述】:当我尝试做两个不同的查询时,我得到了这个错误我该如何解决它
``错误:需要查询选项。您必须在查询选项中指定您的 GraphQL 文档。
这是代码的 sn-p
//in my index class I dispatch some actions
componentDidMount ()
this.props.fetchNavigationBarDataThunk();
this.props.fetchActionToDoTitleDataThunk();
//then in my action I have something like that
import ApolloClient, createNetworkInterface from 'apollo-client';
import gql from 'graphql-tag';
const opts = uri: 'http://localhost:8080/wfgen/graphql';
const networkInterface = createNetworkInterface(opts);
const client = new ApolloClient(networkInterface);
var query1 = gql`query ...`;
var query2= gql`query ...`;
export function fetchActionToDoTitleDataThunk ()
return (dispatch) =>
dispatch(fetchActionToDoTitleData())
client.query( query2 ).then((results) =>
if (results.networkStatus === 7 && results.loading === false)
dispatch(fetchActionToDoTitleDataFulFilled(results));
else
...
export function fetchNavigationBarDataThunk ()
return (dispatch) =>
dispatch(fetchNavigationBarData())
client.query(query).then((results) =>
if (results.networkStatus === 7 && results.loading === false)
dispatch(fetchNavigationBarDataFulFilled(results));
else
....
【问题讨论】:
【参考方案1】:我认为您的问题在于client.query( query2 )
和client.query(query)
首先,使用速记对象属性初始化, query2
等价于 query2: query2
- 但 ApolloClient 期望类似于 query: query2
。
其次,根据您提供的代码,query
未定义。我想你的意思是client.query(query: query1)
或client.query(query: query2)
【讨论】:
我只是想保持代码简短,所以我没有编写完整的查询,但感谢您的帮助以上是关于在 redux 操作中反应 apollo 多个查询的主要内容,如果未能解决你的问题,请参考以下文章
从为 GraphQL 分派的 redux 操作中访问 Apollo 客户端
使用 Redux Thunk 和 Apollo Graphql 做出反应 - 如何访问 client.query?
React GraphQL Apollo 和 Redux。如何查询数据并将其置于 store 的 initialState 中?