Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何强制“hbspt.forms.create中的onFormSubmit函数需要jQuery。它未运行。”Gatsby SPA中的错误_Reactjs_React Native_React Redux_Gatsby - Fatal编程技术网

Reactjs 如何强制“hbspt.forms.create中的onFormSubmit函数需要jQuery。它未运行。”Gatsby SPA中的错误

Reactjs 如何强制“hbspt.forms.create中的onFormSubmit函数需要jQuery。它未运行。”Gatsby SPA中的错误,reactjs,react-native,react-redux,gatsby,Reactjs,React Native,React Redux,Gatsby,我正在尝试在我的SAP中实现HubspotForm。它是渲染的,但是当我单击submit按钮时,我得到一个错误:hbspt.forms.create中的onFormSubmit函数需要jQuery。它没有运行。 我怎么能强迫你这么做 我的组成部分: import React from "react" import style from "./bottomForm.module.sass" import BackgroundImage from "

我正在尝试在我的SAP中实现HubspotForm。它是渲染的,但是当我单击submit按钮时,我得到一个错误:hbspt.forms.create中的onFormSubmit函数需要jQuery。它没有运行。 我怎么能强迫你这么做

我的组成部分:

import React from "react"
import style from "./bottomForm.module.sass"
import BackgroundImage from "gatsby-background-image"
import classNames from "../../helpers/classNames"
import HubspotForm from "react-hubspot-form"
import { graphql, useStaticQuery } from "gatsby"

const BottomForm = ({ image, title, children }) => {
  const defaultImage = useStaticQuery(graphql`
    query {
      form_bg: file(relativePath: { eq: "common/form_bg.jpg" }) {
        childImageSharp {
          fluid(maxWidth: 1920) {
            ...GatsbyImageSharpFluid_noBase64
          }
        }
      }
    }
  `)

  return (
    <BackgroundImage
      Tag="section"
      className={style.section}
      fluid={image || defaultImage.form_bg.childImageSharp.fluid}
      id={"bottomForm"}
    >
      <div className={style.content}>
        <h2 className={style.title}>{title}</h2>
        <div className={style.form_box}>
          <div className={classNames(style.form_column, style.form_info)}>
            {children}
          </div>
          <div className={style.form_column}>
            {/*<div id="contactFormBottom" />*/}
            <div className={style.form_contact_box}>
              <HubspotForm
                portalId="9075801"
                formId="6ee5300e-5ffe-471d-a400-92b06ca18a11"
                onSubmit={() => console.log('Submit!')}
                onReady={(form) => console.log('Form ready!')}
                loading={<div>Loading...</div>}
              />
            </div>
          </div>
        </div>
      </div>
    </BackgroundImage>
  )
}

export default BottomForm
选中此项:

这是提出的解决办法之一。我将尽量避免的另一个问题是直接在您的项目上导入jQuery。

检查以下内容:


这是提出的解决办法之一。我将尽量避免的另一个问题是直接在您的项目上导入jQuery。

For me works next solution-->我添加了onReady属性代码,用于检查jQuery脚本是否在DOM中,如果不在DOM中,则添加它。我还添加了onSubmit={=>{}。如果没有错误,请再次下拉

<HubspotForm
  portalId="9075800"
  formId="11ba4132-6072-4c18-9ea7-f21b70191120"
  loading={<div>Loading...</div>}
  onReady={() => {
    const script = document.createElement('script');
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js';
    let jqueryScript = document.getElementsByTagName('script');
    let src = Array.from(jqueryScript).filter(item => item.src === script.src)
    if(src.length === 0) {
      document.body.appendChild(script)
    }
  }}
  onSubmit={() => {}}
/>

For me works下一个解决方案-->我添加onReady属性代码,该代码检查jQuery脚本是否在DOM中,如果不在DOM中,则添加它。我还添加了onSubmit={=>{}。如果没有错误,请再次下拉

<HubspotForm
  portalId="9075800"
  formId="11ba4132-6072-4c18-9ea7-f21b70191120"
  loading={<div>Loading...</div>}
  onReady={() => {
    const script = document.createElement('script');
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js';
    let jqueryScript = document.getElementsByTagName('script');
    let src = Array.from(jqueryScript).filter(item => item.src === script.src)
    if(src.length === 0) {
      document.body.appendChild(script)
    }
  }}
  onSubmit={() => {}}
/>

谢谢你的回答!我已经通过npm安装jQuery安装了jQuery,但表单仍然不起作用。我可能需要在模块内导入它或执行其他操作?请在不使用jQuery的情况下尝试这种方法。当然,在安装它时,您需要导入它,就像任何其他依赖项一样。好的,我在我的组件中实现了它,但我不明白在函数处理程序{…}中应该使用什么。创建一个函数,它将发送表单并在//do stuff中触发它。感谢您回答man!我已经通过npm安装jQuery安装了jQuery,但表单仍然不起作用。我可能需要在模块内导入它或执行其他操作?请在不使用jQuery的情况下尝试这种方法。当然,在安装它时,您需要导入它,就像导入任何其他依赖项一样。好的,我在我的组件中实现了它,但是我不明白在函数处理程序{…}中应该使用什么。创建一个函数,该函数将发送表单并在//do stuff中触发它