您好我只想接收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>
);
}
}
答案 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 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;