首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >初学者GraphQL & Drupal -静态查询返回TypeError:无法读取未定义的属性'allNodeData‘

初学者GraphQL & Drupal -静态查询返回TypeError:无法读取未定义的属性'allNodeData‘
EN

Stack Overflow用户
提问于 2019-09-12 01:43:04
回答 1查看 78关注 0票数 0

我是Graphql的新手,但是不能用静态查询/ useStaticQuery从Drupal中查询GraphQL中的任何东西。页面查询工作得很好,但是我希望避免在页面中工作的限制。

Gatsby-source-drupal已连接,我可以在localhost/_graphql中看到填充的字段。

当我将信息硬编码到Gatsby-config.js module.exports中时,静态查询可以很好地工作。如果不是,我会一次又一次地收到相同的错误,无论在哪里或在什么类型的配置中都是如此。

如有任何建议,我们将不胜感激。

代码语言:javascript
运行
AI代码解释
复制
import { Link } from "gatsby"
import PropTypes from "prop-types"
import React from "react"
import { useStaticQuery, graphql } from "gatsby"
import { useHeaderImg } from "../../hooks/use-header-images.js"

import "./header.css"

function Header({ siteTitle }) {
  const { site } = useStaticQuery(
    graphql`
      query {
        site {
          siteMetadata {
            description
            author
          }
        }
      }
    `
  )
  const { format, processed, value } = useHeaderImg()
  return (
    <header className="rebeccapurple">
      <h3> This is a variable {format}</h3>
      <div className="purpz">
        <h1 className="zero">
          <Link className="link" to="/">
            {siteTitle} Woah {site.siteMetadata.author}
          </Link>
        </h1>
      </div>
    </header>
  )
}
Header.propTypes = {
  siteTitle: PropTypes.string,
}

Header.defaultProps = {
  siteTitle: ``,
}

export default Header
代码语言:javascript
运行
AI代码解释
复制
import { useStaticQuery, graphql } from "gatsby"

// Based off "Composing custom useStatic hooks"
export const useHeaderImg = () => {
  const { data } = useStaticQuery(
    graphql`
      query HeaderImgData {
        allNodeBelvedereBanner {
          edges {
            node {
              field_header {
                format
                processed
                value
              }
            }
          }
        }
      }
    `
  )
  return data.allNodeBelvedereBanner.edges.node.field_header
}

我的Header组件中上面的静态查询之所以有效,是因为我在gatsby- siteMetadata中用module.exports编码了配置。如果我尝试以同样的方式从drupal查询任何东西,它都会失败。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-12 01:48:59

你不需要解构data,所以data将会是undefined

你试过这个吗?

代码语言:javascript
运行
AI代码解释
复制
export const useHeaderImg = () => {
  const data = useStaticQuery(
    graphql`
      query HeaderImgData {
        allNodeBelvedereBanner {
          edges {
            node {
              field_header {
                format
                processed
                value
              }
            }
          }
        }
      }
    `
  )
  return data.allNodeBelvedereBanner.edges.node.field_header
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57898723

复制
相关文章
vuejs中的组件以及父子组件间通信传值
您将在本文当中了解到,往网页中添加数据,从传统的dom操作过渡到数据层操作,实现同一个目标,两种不同的方式.以及什么是组件,如何定义和使用组件,父子组件之间如何进行简单的通信传值...
itclanCoder
2020/10/28
20.5K0
vuejs中的组件以及父子组件间通信传值
vuejs — 父组件向子组件传值(父传子)「建议收藏」
(父组件)向(子组件)传值,那么子组件需要一个属性接收,大家应该都知道,使用 props 来接收;
全栈程序员站长
2022/08/26
1.4K0
vuejs — 父组件向子组件传值(父传子)「建议收藏」
jQuery动态改变Input/Textarea值Vuejs数据没有绑定的解决办法
大概的意思是Vue只监听浏览器原生事件,而jQuery改变输入框的值属于jQuery定义的事件,这个Vue是无法监听到的。
飞奔去旅行
2019/06/13
1.6K0
vuejs组件通信精髓归纳
父子关系即是组件 A 在它的模板中使用了组件 B,那么组件 A 就是父组件,组件 B 就是子组件。
张炳
2019/08/02
8540
vuejs中缓存组件状态-keepAlive
在 vuejs中,我们经常需要缓存一些组件的状态,比如用户登录后,切换到其他页面,再切换回来,需要保留之前的登录状态,而不是重新登录。
itclanCoder
2023/10/01
2410
vuejs中缓存组件状态-keepAlive
WP绑定多个域名
今天上午没出去,重新折腾了一下,把另外的一个域名h4ck.ws绑定到了blog上。绑定多个域名的方法网上介绍的也比较多,这里我使用的是最简单的PS WP Multi Domain插件,直接从插件页面搜索安装插件即可。现在可以同时使用h4ck.org.cn和h4ck.ws来访问本博客了。同时修改了一下Google Friend Connect小插件,让这个东西在两个域名下可以同时访问。说白了方法挺简单的,就是另外创建了一个独立的页面,挂载到原来的域名下,在网页中嵌入GFC的地方直接使用iframe页面嵌入即可。但是由于这个GFC动态创建的,没有固定大小,现在使用的是固定大小的方法,显示效果并不是很好。如果谁有更好的办法还望不吝赐教。
obaby
2023/02/24
13K0
VueJs中如何使用Teleport组件
在DOM结构相对比较复杂,层级嵌套比较深的组件内,需要根据相对应的模块业务处理一些逻辑,该逻辑属于当前组件
itclanCoder
2023/02/26
2.4K0
VueJs中如何使用Teleport组件
一个表格组件-vuejs示例
分析vuejs官网上一个表格组件的实现过程。 原址:https://cn.vuejs.org/v2/examples/grid-component.html
Ewall
2018/09/04
1.4K0
Vuejs中父组件主动调用子组件的方法
我们都知道,vue是单向流,但是有时候我们需要在父组件中主动通知子组件一些信息,使其做出一些响应变化,那么如何在父组件中去主动调用子组件的方法呢?Vue当然给我们提供了方法,如下:
飞奔去旅行
2019/06/13
5.1K0
[译] VueJS 中更好的组件组合方式
VueJS 中有一些组合组件并复用逻辑的方法。在本文中,我将展示一种在 Vuejs (2.* 及 3.*) 中改进组合方式的方法。
江米小枣
2020/09/24
1.3K0
[译] VueJS 中更好的组件组合方式
react中类组件传值,函数组件传值:父子组件传值、非父子组件传值[通俗易懂]
函数组件中我们一般情况下使用useEffect实现数据的请求 // useEffect Hook 看做 componentDidMount,componentDidUpdate 和 componentWillUnmount (加载,更新,卸载)这三个函数的组合。 语法格式: useEffect(()=>{ },[])
全栈程序员站长
2022/08/30
6.4K0
phpStudy 创建多个站点,绑定域名
站长前面推荐过《phpStudy:非常棒的PHP环境搭建包(支持Apache、IIS、Nginx和LightTPD) 》,今天来简单介绍一下使用 phpStudy 创建多个站点,绑定域名的方法。
星哥玩云
2022/08/13
5.1K0
phpStudy 创建多个站点,绑定域名
Toast组件开发实践(Vuejs3.x)
Toast组件几乎是没有个组件库必备的组件,通过Toast组件开发可以比较全面的学习Vuejs的相关技能点,一起来看一下~
前端小鑫同学
2023/05/01
1.4K0
关于nginx为站点绑定域名以及绑定多个域名
环境: 系统:Centos6.+版本 使用lnmp一键安装包安装环境(配置文件地址在其官网有写)
1_bit
2020/10/23
14.7K0
关于nginx为站点绑定域名以及绑定多个域名
VUE组件封装_vue组件内部双向绑定
官方:一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件。
全栈程序员站长
2022/11/09
8500
VUE组件封装_vue组件内部双向绑定
Vuejs函数式组件,你值得拥有(1)
我们可以把函数式组件想像成组件里的一个函数,入参是渲染上下文(render context),返回值是渲染好的HTML
用户2845596
2021/01/21
5350
组件传值
vue组件之间的传值大致分为三种:父组件给子组件传值,子组件给父组件传值,兄弟组件之间传值 本文主要介绍vue组件之间简单的数据传递,如果组件之间传递的数据比较复杂,建议使用vue的状态管理模式 vuex
ZEHAN
2021/06/15
1.8K0
Linux系统单网卡绑定多个IP
2.复制一份原有网卡的配置文件(ifcfg-eth0)并修改名称为ifcfg-eth0:0,如果要添加更多的IP,按照0:0、0:1、0:2的顺序继续往下添加就可以了。
雾海梦曦
2022/11/12
10K0
Linux系统单网卡绑定多个IP
java:函数--返回多个值
1、【使用集合类】使用map返回值;这个方法问题是,你并不知道如何返回值的key是什么,只能通过doc或者通过源代码来查看。
用户7886150
2020/12/14
2.7K0
实现WordPress支持多个域名绑定/访问
搬运一个小技巧,通过简单修改wp-config.php文件来实现WordPress博客支持绑定多个域名及访问。原文链接:https://www.wn789.com/13334.html
林清猫耳
2018/12/18
7.4K0

相似问题

Django url国际化在生产模式下不起作用

10

删除用户在JHipster生产模式下不起作用

11

星云切换在生产模式下不起作用

16

多个Angular库在生产模式下不起作用

211

上传图像在生产模式下不起作用

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档