React 中的 Jquery 未定义

IT技术 javascript jquery ajax reactjs
2021-01-17 01:29:43

嗨,我只想接收 ajax 请求,但问题是 React 中没有定义 jquery。react版本是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个回答

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

npm i jquery --save

或者如果你使用凉亭

bower i jquery --save

然后

import $ from 'jquery'; 
如果出现错误,请尝试运行: 1. yarn install。2.纱线升级。3.纱线加纱线。它为我解决了所有问题。
2021-03-19 01:29:43
如果您在 React 中使用typescript,请import * as $ from 'jquery';改用。更多信息在这里stackoverflow.com/questions/35310361/...
2021-04-06 01:29:43

我只是想接收 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
  });
感谢您的回答,这个线程中确实缺少这一点!
2021-03-18 01:29:43

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

yarn add jquery

新产品经理

npm i jquery --save

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

并不比这样做更容易:

1- 在您的项目中安装 jquery:

yarn add jquery

2- 导入 jquery 并开始玩 DOM:

import $ from 'jquery';

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

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