React中的Jquery未定义

时间:2015-10-26 16:54:31

标签: javascript jquery ajax reactjs

您好我只想接收ajax请求,但问题是在React中没有定义jquery。反应版本是14.0

错误消息

Uncaught ReferenceError: $ is not defined

我有两个文件

index.js

import React from 'react'; 
import { render } from 'react-dom';
import App from './containers/App';  

const root = document.getElementById('root');  

render( 
  <App source='https://api.github.com/users/octocat/gists' />, 
  root
);

app.js

import React, { Component } from 'react';

export default class App extends Component {

componentDidMount() {
    const { source } = this.props;

    console.log($); // throws error
}

render() {
    return (
        <h1>Hey there.</h1>
    );
}
}

6 个答案:

答案 0 :(得分:248)

尝试将jQuery添加到您的项目中,例如

npm i jquery --save

或者如果你使用凉亭

bower i jquery --save

然后

import $ from 'jquery'; 

答案 1 :(得分:4)

  

我只想接收一个ajax请求,但是问题是jQuery没有在React中定义。

然后不要使用它。使用Fetch并查看Fetch polyfill in React not completely working in IE 11来查看使其运行的其他方法示例

类似

const that = this; 
fetch('http://jsonplaceholder.typicode.com/posts') 
  .then(function(response) { return response.json(); }) 
  .then(function(myJson) { 
     that.setState({data: myJson}); // for example
  });

答案 2 :(得分:2)

这种情况主要发生在您的项目中未安装 JQuery 时。 根据您的包管理器,按照以下命令在您的项目中安装 JQuery。

纱线

yarn add jquery

npm

npm i jquery --save

在此之后,只需在您的项目文件中导入 $import $ from 'jquery'

答案 3 :(得分:0)

仅需注意:如果使用箭头函数,则不需要const =这部分。 可能看起来像这样:

val runSomeShTask = TaskKey[Unit]("runSomeSh", " run some sh")
    lazy val startrunSomeShTask = TaskKey[Unit]("runSomeSh", " run some sh")
    startrunSomeShTask := {
      val s: TaskStreams = streams.value
      val shell: Seq[String] = if (sys.props("os.name").contains("Windows")) Seq("cmd", "/c") else Seq("bash", "-c")
      // watch out for those STDOUT , SDERR redirection, otherwise this one will hang after sbt test ... 
      val startMinioSh: Seq[String] = shell :+ " ./src/sh/some-script.sh"
      s.log.info("set up run some sh...")
      if (Process(startMinioSh.mkString(" ")).! == 0) {
        s.log.success("run some sh setup successful!")
      } else {
        throw new IllegalStateException("run some sh setup failed!")
      }
    }

    // or only in sbt test 
    // test := (test in Test dependsOn startrunSomeShTask).value
    (compile in Compile) := ((compile in Compile) dependsOn startrunSomeShTask).value

答案 4 :(得分:0)

做起来并不容易:

1-在项目中安装jquery:

web-console

2-导入jquery并开始使用DOM:

yarn add jquery

答案 5 :(得分:-7)

将“ref”添加到h1标签:

<h1 ref="source">Hey there.</h1>


const { source } = this.props;更改为const { source } = this.refs;