Javascript React中带有回调函数的故障
在我的一个React类中操作回调函数时遇到问题。基本上,我会在单击时调用Javascript React中带有回调函数的故障,javascript,reactjs,Javascript,Reactjs,在我的一个React类中操作回调函数时遇到问题。基本上,我会在单击时调用checkSource,如果它满足特定的要求,我会调用handleSubmitClick。我感觉这与我调用此有关。handleSubmitClick,但我不明白。我的理解是,这个是指我创建的组件对象。如果是这样,它不应该调用该函数并执行吗 完整的组成部分如下: var React = require('react'); module.exports = React.createClass({ getInitialSta
checkSource
,如果它满足特定的要求,我会调用handleSubmitClick
。我感觉这与我调用此有关。handleSubmitClick,但我不明白。我的理解是,这个
是指我创建的组件对象。如果是这样,它不应该调用该函数并执行吗
完整的组成部分如下:
var React = require('react');
module.exports = React.createClass({
getInitialState: function() {
return {
text: ''
}
},
handleTextInput: function(event){
this.setState({text: event.target.value})
},
checkSource: function(){
var clientId = 'xxxx';
var resolve = 'http://api.soundcloud.com/resolve?url=';
$.get(resolve + this.state.text + '&client_id=' + clientId, function(data) {
$.get('http://api.soundcloud.com/users/' + data.user.id + '/?client_id=' + clientId, function(data) {
if(data.followers_count < 3000) {
console.log("handleSubmitClick now");
this.handleSubmitClick();
} else {
return false;
}
});
});
},
handleSubmitClick: function() {
console.log('handleSubmitClick going')
console.log(this.state.text)
var linkStore = this.props.linkStore
linkStore.push(this.state.text)
this.setState({text: ''})
this.props.handleListSubmitClick(linkStore)
console.log(this.props.linkStore)
},
render: function() {
return <div className="row">
<div className="col-md-8 col-md-offset-2">
<div className="text-center">
<h1>Soundcloud3k</h1>
</div>
<div className="input-group">
<input
onChange = {this.handleTextInput}
type="text"
className="form-control"
placeholder="Search fr..."
value={this.state.text} />
<span className="input-group-btn">
<button
onClick={this.checkSource}
className="btn btn-default"
type="button">Submit!</button>
</span>
</div>
</div>
</div>
}
});
var React=require('React');
module.exports=React.createClass({
getInitialState:函数(){
返回{
文本:“”
}
},
handleTextInput:函数(事件){
this.setState({text:event.target.value})
},
checkSource:function(){
var clientId='xxxx';
var解析http://api.soundcloud.com/resolve?url=';
$.get(resolve+this.state.text+'&client_id='+clientId,函数(数据){
$.get('http://api.soundcloud.com/users/“+data.user.id+”/?客户端_id=”+clientId,函数(数据){
如果(data.u计数<3000){
log(“handleSubmitClick now”);
这个.handleSubmitClick();
}否则{
返回false;
}
});
});
},
handleSubmitClick:函数(){
log('handleSubmitClick go')
console.log(this.state.text)
var linkStore=this.props.linkStore
linkStore.push(this.state.text)
this.setState({text:'})
此.props.handleListSubmitClick(链接商店)
console.log(this.props.linkStore)
},
render:function(){
返回
声云3K
提交
}
});
这是带有checkSource
调用的渲染函数
checkSource
函数的控制台日志按预期工作,但我无法让handleSubmitClick
执行任何操作。我没有在控制台中得到错误或任何东西。有什么想法吗?在$中。获取回调此不引用您的组件,您应该为每个回调设置此。另外,ajax回调中的返回false
没有意义,因此您可以删除它
checkSource: function(){
var clientId = 'xxxx';
var resolve = 'http://api.soundcloud.com/resolve?url=';
$.get(resolve + this.state.text + '&client_id=' + clientId, function(data) {
$.get('http://api.soundcloud.com/users/' + data.user.id + '/?client_id=' + clientId, function(data) {
if(data.followers_count < 3000) {
this.handleSubmitClick();
}
}.bind(this));
}.bind(this));
},
checkSource:function(){
var clientId='xxxx';
var解析http://api.soundcloud.com/resolve?url=';
$.get(resolve+this.state.text+'&client_id='+clientId,函数(数据){
$.get('http://api.soundcloud.com/users/“+data.user.id+”/?客户端_id=”+clientId,函数(数据){
如果(data.u计数<3000){
这个.handleSubmitClick();
}
}.约束(这个);
}.约束(这个);
},