【发布时间】:2017-11-08 07:00:51
【问题描述】:
我正在使用 Apollo Client 创建一个应用程序来使用 Graphql 查询我的服务器。我有一个 python 服务器,我在其上执行我的 graphql 查询,该查询从数据库中获取数据,然后将其返回给客户端。
我已经为客户端创建了一个自定义的 NetworkInterface,它可以帮助我发出自定义的服务器请求(默认情况下,ApolloClient 对我们指定的 URL 进行 POST 调用)。网络接口只需要一个 query() 方法,我们在其中返回 Promise<ExecutionResult> 形式的结果的承诺。
我能够进行服务器调用并获取请求的数据,但仍然收到以下错误。
Error: Network error: Error writing result to store for query
{
query something{
row{
data
}
}
}
Cannot read property 'row' of undefined
at new ApolloError (ApolloError.js:32)
at ObservableQuery.currentResult (ObservableQuery.js:76)
at GraphQL.dataForChild (react-apollo.browser.umd.js:410)
at GraphQL.render (react-apollo.browser.umd.js:448)
at ReactCompositeComponent.js:796
at measureLifeCyclePerf (ReactCompositeComponent.js:75)
at ReactCompositeComponentWrapper._renderValidatedComponentWithoutOwnerOrContext (ReactCompositeComponent.js:795)
at ReactCompositeComponentWrapper._renderValidatedComponent (ReactCompositeComponent.js:822)
at ReactCompositeComponentWrapper._updateRenderedComponent (ReactCompositeComponent.js:746)
at ReactCompositeComponentWrapper._performComponentUpdate (ReactCompositeComponent.js:724)
at ReactCompositeComponentWrapper.updateComponent (ReactCompositeComponent.js:645)
at ReactCompositeComponentWrapper.performUpdateIfNecessary (ReactCompositeComponent.js:561)
at Object.performUpdateIfNecessary (ReactReconciler.js:157)
at runBatchedUpdates (ReactUpdates.js:150)
at ReactReconcileTransaction.perform (Transaction.js:140)
at ReactUpdatesFlushTransaction.perform (Transaction.js:140)
at ReactUpdatesFlushTransaction.perform (ReactUpdates.js:89)
at Object.flushBatchedUpdates (ReactUpdates.js:172)
at ReactDefaultBatchingStrategyTransaction.closeAll (Transaction.js:206)
at ReactDefaultBatchingStrategyTransaction.perform (Transaction.js:153)
at Object.batchedUpdates (ReactDefaultBatchingStrategy.js:62)
at Object.enqueueUpdate (ReactUpdates.js:200)
如果可能的话,我想知道错误的可能原因和解决方法。
【问题讨论】:
-
{ query something{ row{ data } } }应该是什么? -
指定组件所需数据的是graphql查询
-
无论何时使用“fetchPolicy={"cache-and-network"}”,都必须为每个 graphql 对象包含“id”。 {查询东西{id行{“id”数据}}}
标签: javascript graphql react-apollo apollo-client