React中的Jquery未定义

Mac*_*cek 51 javascript ajax jquery reactjs

嗨,我只想收到ajax请求,但问题是在React中没有定义jquery.React版本是14.0

错误信息

 Uncaught ReferenceError: $ is not defined
Run Code Online (Sandbox Code Playgroud)

我有两个文件

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
);
Run Code Online (Sandbox Code Playgroud)

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>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_* T. 285

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

npm i jquery --save
Run Code Online (Sandbox Code Playgroud)

或者如果你使用凉亭

bower i jquery --save
Run Code Online (Sandbox Code Playgroud)

然后

import $ from 'jquery'; 
Run Code Online (Sandbox Code Playgroud)

  • 为了上帝的爱,接受这个答案 (137认同)
  • 如果你正在使用typescript with react,那么使用`import*as $ from'jquery';`代替.更多信息请访问/sf/ask/2471725301/ (3认同)

小智 7

它主要发生JQuery在您的项目中未安装时。根据您的包管理器,通过以下命令在您的项目中安装 JQuery。

yarn add jquery
Run Code Online (Sandbox Code Playgroud)

新项目管理

npm i jquery --save
Run Code Online (Sandbox Code Playgroud)

之后只需导入$您的项目文件。 import $ from 'jquery'


mpl*_*jan 5

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

然后不要使用它。使用Fetch并查看React中的Fetch polyfill无法在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
  });
Run Code Online (Sandbox Code Playgroud)