在方法内部调用另一个方法 ReactJS
Calling inside a method another method ReactJS
首先,我是 React 的新手,所以如果有什么需要改进的地方告诉我。
我有一个登录表单,将带有ajax的信息发送到php,我想捕获错误并更新p元素,尽管我找不到方法。
当我用php发送的消息是错误的时,我想调用另一个方法,但它说未定义。
var APP = React.createClass({
getInitialState:function(){
return{user:'',pass:'',message:''};
},
setUser:function(e){
this.setState({user:e.target.value});
},
setPass:function(e){
this.setState({pass:e.target.value});
},
setErrors:function(errors){
alert('calling');
this.setState({message:errors});
},
handleForm:function(e){
e.preventDefault();
var username = this.state.user;
var password = this.state.pass;
$.ajax({
'url':'prg/loginJSON.php',
'type':'POST',
data:{'username':username,'password':password},
success:function(result){
if(result.error){
window.location.href="http://localhost/learnSeries/home.html";
sessionStorage.setItem('cookiePass',result.token);
}
else{
this.setErrors(result.message);
}
},
error:function(xhr){
console.log('error ajax' +xhr.responseText);
}
});
},
render:function(){
return(
<form onSubmit={this.handleForm} id="loginForm" method="post" action="" role="form">
<label className="is-required">User</label>
<input type="text" name="username" onChange={this.setUser} id="username" required placeholder="User"></input>
<label className="is-required">Password</label>
<input type="password" name="password" onChange={this.setPass} id="password" required placeholder="Password"></input>
<input type="submit" value="Log In"></input>
<p>{this.state.message}</p>
</form>
)
}
});
React.render(<APP />, document.getElementById('site'));
success
函数中的this
与使用 $.ajax
启动请求时不同。你必须记住它并使用它,而不是以后this
(在我的
handleForm:function(e){
// ...
// -->
var self = this;
// <--
$.ajax({
// ...
success:function(result){
if(result.error){
// ...
}
else{
// -->
self.setErrors(result.message);
// <--
}
},
// ...
});
相关文章:
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么
- 在 reactjs 中设置组件 DidMount 上的间隔是一种正确的方法
- 在方法内部调用另一个方法 ReactJS
- 在 ReactJS 中更新数组中对象的最佳方法是什么
- 如何在 ReactJS 中限制静态方法
- ReactJS - 在 react 类中初始化 jquery 插件的标准方法是什么
- ReactJS 从父组件的 onClick 方法更新对子组件的 ajax 调用
- 从该组件外部更新已渲染的 ReactJS 组件的正确方法
- 静态方法在 ES6 类中未定义,在 reactjs 中有一个装饰器
- 在渲染方法 ReactJS 中获取组件宽度
- 如何处理从ReactJS中的组件B中的方法调用组件a中的方法这样的情况
- ReactJS以正确的方式绑定组件方法
- ReactJS的首选测试方法
- 这是在ReactJS中使用键显示列表项的正确方法
- 如何使用ReactJS调用由childda事件引起的childdb方法
- 在reactjs中使用渲染方法之外的函数
- “this.state"或方法在Reactjs中不可访问
- Reactjs,这.上下文在构造函数方法中未定义
- 如何包装一个类从一个渲染方法到OnClickOutside通过ReactJS
- 在ReactJS中使用反向数据流进行子父通信的好方法是什么?