在特定条件下重新触发GET请求
Retriggering a GET request React under certain conditions
我使用jquery向测验API发出GET
请求。我使用React向用户显示问题,如果他们得到正确的问题,我想触发API请求并获取一个新问题。
如果用户得到正确的答案,我试图触发使GET
请求的功能,但是控制台告诉我this.serverRequest is not a function
我昨天才开始学习react,所以请原谅任何可怕的错误,但也可以随时提供关于如何改进代码的反馈。
请参阅下面的代码,希望能更清楚地说明我所面临的问题。
var Quiz = React.createClass({
getInitialState: function() {
return {
question: '',
answer: '',
score: 0
}
},
checkAnswer: function(event) {
if(event.target.value === this.state.answer) {
this.setState({
score: this.state.score + 1
})
this.serverRequest;
}
},
componentDidMount: function() {
this.serverRequest = $.get('http://jservice.io/api/random', function(data){
var response = data[0];
this.setState({
question: response.question,
answer: response.answer
})
}.bind(this));
},
render: function() {
return (
<div>
<p>{this.state.question}</p>
<input type='text' onChange={this.checkAnswer}/>
<p>{this.state.score}</p>
</div>
)
}
});
明白了!
我将get
请求移动到另一个方法中,并在theComponentDidMount
方法中调用它。
getData: function() {
$.get('http://jservice.io/api/random', function(data){
var response = data[0];
console.log(response)
this.setState({
question: response.question,
answer: response.answer
})
}.bind(this));
},
componentDidMount: function() {
this.serverRequest = this.getData()
},
相关文章:
- 在新标签页打开时触发 Chrome 扩展程序
- 与node.js的get/post混淆,并试图创建一个新页面
- 为什么当我指定POST时,即使我已经尝试了类型和方法选项,我的ajax代码仍然会触发GET请求
- jQuery:将类添加到新元素后,可以't通过单击该类来触发事件
- 添加新元素后不会触发事件
- 防止在元素上触发新事件,直到当前事件函数在jQuery中完成
- 新指令导致NG改变两次触发
- 当新的Wordpress帖子发布时触发HTML5通知
- jQuery 单击事件在追加新按钮时未触发
- 新的 $.fn.MyObject() 在 IE8 中触发“预期对象”错误
- gulp-watch 插件不会在新文件上触发
- 在浏览器返回时触发事件,并使用新 url 强制刷新或重新加载页面
- 按键触发 的 CSS 更改,在新选项卡中打开链接,然后回滚到以前的 CSS 状态
- 当旧值和新值相同时,角度手表被触发
- Angular http GET循环使用新的URL作为响应
- AngularJS $http.post()触发get request而不是post
- 为什么javascript触发提交表单(方法get,目标空白)打开弹出窗口而不是新选项卡
- 我如何从javascript触发get
- 这一点.submit没有触发GET调用
- 在特定条件下重新触发GET请求