GraphQL查询返回未定义但在刷新页面时工作正常吗?

时间:2019-09-02 16:29:57

标签: reactjs graphql

我正在执行一个相当复杂的GraphQL查询。有时它返回未定义,但是当我刷新页面时它就起作用了。

我正在使用ReactJS作为前端构建一个Web应用程序,并使用GraphQL来获取数据。该查询非常复杂,即使我注释掉了页面中的整个代码(因此实际上没有信息呈现到页面上,只是执行了查询),它有时仍返回未定义的信息。

我已经在GraphQL游乐场中尝试了Query,并且工作正常。

如果我查看服务器响应,则0.chunk.js.map响应时间非常长。

有人知道这可能是什么吗?

我正在渲染的页面在组件层次结构的不同级别执行了5个不同的graphQL查询。但是,总是在最高级别组件中的查询经常返回未定义。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

从服务器中获取查询时,可能未定义

data。您可以为其提供默认值,以使销毁工作无论如何:

({ data: { movie } = {}, error, loading }) => {

您甚至可以使用解构来访问更多的嵌套字段,但是您需要在每个级别提供默认值。例如:

({ data: { movie: { title } = {} } = {}, error, loading }) => {

请注意,如果请求返回错误并一直冒泡直至根,则data可能以null结尾(而不是undefined)。在这种情况下,默认设置将无济于事。但是您仍然可以通过以下方式防止null:

const movie = data && data.movie

或使用类似lodash的{​​{1}}。