我正在执行一个相当复杂的GraphQL查询。有时它返回未定义,但是当我刷新页面时它就起作用了。
我正在使用ReactJS作为前端构建一个Web应用程序,并使用GraphQL来获取数据。该查询非常复杂,即使我注释掉了页面中的整个代码(因此实际上没有信息呈现到页面上,只是执行了查询),它有时仍返回未定义的信息。
我已经在GraphQL游乐场中尝试了Query,并且工作正常。
如果我查看服务器响应,则0.chunk.js.map响应时间非常长。
有人知道这可能是什么吗?
我正在渲染的页面在组件层次结构的不同级别执行了5个不同的graphQL查询。但是,总是在最高级别组件中的查询经常返回未定义。
答案 0 :(得分:1)
data
。您可以为其提供默认值,以使销毁工作无论如何:
({ data: { movie } = {}, error, loading }) => {
您甚至可以使用解构来访问更多的嵌套字段,但是您需要在每个级别提供默认值。例如:
({ data: { movie: { title } = {} } = {}, error, loading }) => {
请注意,如果请求返回错误并一直冒泡直至根,则data
可能以null
结尾(而不是undefined
)。在这种情况下,默认设置将无济于事。但是您仍然可以通过以下方式防止null:
const movie = data && data.movie
或使用类似lodash
的{{1}}。