我在loginCheck中遇到“TypeError:t不是函数”错误,我不明白为什么。错误来自我调用回调函数fn的行。
loginCheck(jwt, fn){
if(jwt !== null){
req("jwt="+encodeURIComponent(jwt), "verifyJWT.php", (response)=>{
fn(response);
});
}
else{
fn("Fail");
}
}
我在登录功能中使用了完全相同的语法,没有任何问题:
login(user, pass, fn){
var creds = "t="+user+"&s="+pass;
req(creds, "login.php", (response)=>{
if(response && response.length > 0){
fn(response);
}
else{
fn(response);
}
});
},
回调在我的反应组件中,如下所示:
componentWillMount(){
funcs.loginCheck(localStorage.getItem("jwt"), (response)=>{
console.log(response);
});
}
onClick(){
funcs.login(this.state.username, this.state.password, (response)=>{
if(response != 0 && response !== false){
// on successful login, response should be a json web token
localStorage.setItem("jwt", response);
this.props.history.push("/");
}
else{
console.log(response);
}
});
}
感谢您的任何建议。